Busybox for android

前几天有个朋友问我怎么搞Android Forensics,说了半天我也不明白Forensics是干什么,然后他拿出作业,其实很简单,就是从Android的文件系统里面拷贝出通话记录/联系人记录 etc,ssh进去不就得了,我马上说,iPhone思维惯式很严重……不知道Android能不能越狱,在adb shell进去的那个shell里找不到ssh相关的东西,毕竟是个极精简的Linux,据说现在还跟Linux分道扬镳了

然后找到了Busybox,这个东西以前登录路由器的时候常见到,总以为是个嵌入式Linux发行版,其实是一坨打包的GNU工具集,比如想用tar:

/bin/busybox tar cjvf archive.tar.bz2 folder

参数可能少一点,但少的那些也很少用到。

有了这个东西就好办了,找到一个预编译的Busybox for Android,就不用自己交叉编译了,然后用adb push到模拟器里,打开adb shell,假设Busybox装到了/data/busybox,就可以用/data/busybox tar把/system和/data打包,存到/sdcard,这样隐私文件都保存到一个img镜像文件里了,在Linux上用mount -o loop加载,Android的文件系统就一览无遗啦。

简单看了以下,Android的用户数据都是存成了SQLite文件,比如联系人是存在/data/data/com.google.android.providers.contacts/databases/contacts.db,Firefox用SQLite Manager就能打开,用户信息一览无余。

[LCOTW] chmod 的两个特殊权限位

LCOTW (Linux Commands Of The Week),我打算改改名,叫 Linux commands Of The Quarter 把,人越来越懒了,学到的新东西懒得记下来,等忘了的时候又重新找重新学,太傻了。

执行 ls -l /bin 会发现除了熟悉的 r w x 权限外,还有一些可执行文件有一个 s 权限位(setuid bit),这是啥意思呢?
这个 s 权限可以让文件以文件 owner 的权限运行,做个实验:

sudo touch /test
rm /test #failed! You don't have permission
sudo chmod u+s `which rm`
rm /test #worked!

可以看出这个权限位是很危险的,它可以让一个普通用户以 root 权限运行程序,所以慎用。

还有一个叫 Sticky bit,这个权限只对目录有效 chmod +t /dir(为什么不叫 s?因为已经被 setuid bit 枪了,只好用第二个字符了),一个典型例子是 /tmp,这个目录是全局可写的,sticky bit 可以让文件只能被文件 owner 删除。

这两个权限位的数字表示方法:

4000 setuid bit
2000 setgid bit
1000 sticky bit