Category Archives: 技术

forensic要素初探

0x00 背景

最近做了一些forensic的调查,随便写一下,随时补充。

0x01 Windows

持久化:

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\
  3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks{xxxxxxx-xxxx-xxxx-AD98-xxxxxxxxxx}

在驱除病毒时,往往仅删除了病毒的注册表文件还不够,需要重启电脑。或者使用命令行删除计划任务或者服务:

sc delete ServiceName
schtasks /delete /tn TaskName

Continue reading

iOS文件系统加密

0x00 背景

我以前一直在疑惑,iOS号称对用户数据进行了加密,如果不解锁屏幕就无法看到用户数据。但是实际上,在越狱机器上,如果用ssh进入iPhone,即使不解锁屏幕,也是可以看到用户数据的,这是怎么回事?难道说越狱时disable了一些iOS的安全功能?

0x01 解析

其实读了一下J神的*OS Internals III第十一章就知道了,因为只是有一部分数据是加密的,且加密分成不同的等级,有的是解锁第一次后就一直是明文状态,有的是只有每次解锁后才是明文状态。所以这就是我产生的“iOS没有对数据加密”的错觉的来源。举一个例子,/private/var/mobile/Library/Mail/Protected Index就是被加密的,如果你没有打开MobileMail.app的话,在ssh下读这个文件会发生Operation not permitted错误。

Build executable so (shared object) on Android

0x00 背景

0x01 方法

用以下Android.mkmain.c编译即可。编译出的libmain.so既可以当作动态库来链接,也可当作可执行文件执行。需要注意的是,如果是使用cpp后缀,__attribute__((section(".interp")))将不起作用。包含__attribute__((section(".interp")))的源码只能使用.c后缀

//Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := main

LOCAL_CFLAGS += -fPIC -pie
LOCAL_LDFLAGS += -Wl,-e,entry -llog

LOCAL_MODULE    := main
LOCAL_SRC_FILES := main.c

include $(BUILD_SHARED_LIBRARY)

Continue reading

MAC上导出Non-extractble的证书和私钥

0x00 背景

如果MAC上的私钥被倒入时使用了-x选项,择该私钥在导入后无法从Keychain中导出。这个选项常用于公司管理下的电脑,不想让员工导出安装好的私钥。但是实际上这个私钥还是在员工的电脑里,所以一定有办法提取这个私钥。

0x01 提取

受这个回答启发:
https://stackoverflow.com/questions/25109994/non-extractable-private-key-in-keychain-on-os-x/25213646#25213646
Continue reading