HN user

x1sec

1 karma
Posts1
Comments46
View on HN

Caido[1] a interception proxy written in Rust, is positioning itself as a "lightweight" alternative to Burp. It can't compete yet with Burp in terms of functionality, although the product is certainly looking promising.

Perhaps the only contender to Burp in respect to functionality/features is ZAP[2].

EDIT: You can run your own collaborator type setup with Project discovery's interactsh[3].

Further EDIT: A downvote might be because of the mention of Rust / closed source - this is explicitly mentioned because a large pain point for Burp is it's a Java memory hog. If Caido was written in C++ with Qt, this fact would be notable for the exact same reason.

[1] https://caido.io/

[2] https://www.zaproxy.org/

[3] https://github.com/projectdiscovery/interactsh

In the Q&A section, the speaker remarks:

"There is a part of the talk where I am trying to perform a little bit.. the thing that I'm also talking about. My background is in art .. and we always try to think about form and content being kind of the same thing.."

Thoroughly entertaining, well executed.

Of course it is quite common to need to read it

This is a notable differentiation - Writing assembly is a different skill to reading it from a disassembly. Reverse engineering, malware analysis etc. does not inherently require you to be able to write asm, although it certainly would help.

The article seems to be suggesting the device itself is gathering data and reporting back covertly ... but I believe it's just the AMap library included by the app developer doing its thing.

If this is the take away, then I need to think about how I have phrased things. The GPS co-ordinates are sent two separate companies:

1) The Bluetooth device developer (bm2.quicklynks.com)

2) AMap (dualstack-cgicol.amap.com)

Looking at the decomplication and HTTP REST messages, it is very clear the app developer is deliberately sending GPS to their servers. They send a JSON object with the battery voltages, bluetooth device address and lat/lng in the same request.

The cell data, wifi beacon data - this is exclusively collected by AMap services and is not apparent without investing significant time reverse engineering their SDK.

They will kick you out the store if they detect you're lying about the permission

You have to wonder how long this app never got taken down. Permissions declared in the manifest do not always equate to them being used.

Google could cross reference the privacy statement that the developer published against the manifest. That would have got it flagged.

The actual code that calls android.content.Context.checkCallingOrSelfPermission() obfuscates the permission strings in many places - bypassing static code analysis checks.

Thanks for this: I've updated the post with a note on 'if your app uses Bluetooth scan results to derive physical location'. I highly doubt this is why they use ACCESS_FINE_LOCATION for this purpose. Rather it's an opportunistic way to get users to accept the permission - they tell users to accept it to get Bluetooth working when the app is first installed.

I wonder how many other apps on the Google Play store do this.

We can't expect the every day user to read and comprehend Google's developer documentation.

If you haven't used it before, Timesketch [1] is excellent indexing and searching timeline data for forensics analysis.

MVT takes a (MACB) timeline of your phone backup file changes and other events - including your text message history.

Here is a simple script that I wrote converts it into a format compatible with Timesketch [2] so it's trivial to explore events from the phone, indexed and searchable by time, kind of what you would see in Kibana.

[1] https://timesketch.org/

[2] https://github.com/x1sec/mvt2timesketch

I do note that BLUETOOTH_SCAN could be used for versions 12+. The link you provided is good, I'll also reference that as it also has details on strong assertion (android:usesPermissionFlags - neverForLocation).

I suspect what's actually going on is that they're requesting that permission just so they can show your location inside an embedded map view.

Does the embedded map do some processing in the cloud first? Because the lat/lng is sent over the same API request that includes the battery voltages as well as the BLE address of your handset. I really think none of this is essential to a simple app that reads a battery voltage on your screen.

Hey OP here - I mostly agree with your points in respect to AMap. It's a legitimate mapping service and location SDK.

Why not mention it's AMap in the tl;dr summary?

The GPS data is being sent to two different companies - the battery monitor developer and AMap. I could make this clearer in the tl;dr.

The cell phone tower data (MNC,MCC,LAC,Cell ID) and Wifi BSSID collection is AMap only.

That said, none of the AMap behavior is disclosed by the application developer. Literally apps that use the AMap SDK in this way turns the user's handset into a continuous scanner. This impacts user experience - just check all the complaints on the 1.75k reviews on the Play store [1].

I doubt many devs are aware of this - It took me countless hours to figure the AMap side of things due to obfuscation techniques in the AMAp code. (See part 2 on the blog post series).

The primary issue is that all this data is collected, sent to multiple 3rd parties (AMap being one of them) and none of this was disclosed to consumers when they download the applications.

[1] https://play.google.com/store/apps/details?id=com.dc.battery...

I've written a basic Python script [1] to read the battery voltage from this device. More details here [2].

Could easily integrate with Home Assistant. Might give it a go actually.

It reads the real time voltages, not voltages stored in the embedded device's memory (for when there is no BLE connectivity while it's running). If there is interest, I can work out this part too.

[1] https://gist.github.com/x1sec/3af7efdcd3465aac09093081c32ba3...

[2] https://doubleagent.net/hardware/ble/bluetooth/2023/05/23/a-...

This is exactly what what they did here.

That said, the attention of the blog post seems to have triggered them to disclose now on the Apple [1] and Google Play [2] store that they are indeed collecting your location data. They got away with lying for quite some time, over 100k downloads on Play store and 1.57k reviews.

[1] https://apps.apple.com/au/app/battery-monitor-bm2/id11154920...

[2] https://play.google.com/store/apps/datasafety?id=com.dc.batt...