首页
社区
课程
招聘
[原创]盘古越狱工具在用户空间的行为
发表于: 2014-9-17 23:03 39719

[原创]盘古越狱工具在用户空间的行为

2014-9-17 23:03
39719
def install_pangu():
    lockdown = LockdownClient()
    afc = AFCClient(lockdown)
    mci = lockdown.startService("com.apple.mobile.installation_proxy")
 
    file_name = "com.pangu.ipa1.ipa"
    afc.set_file_contents("/PublicStaging/" + file_name, open("payload/" + file_name,"rb").read())
    mci.sendPlist({"Command":"Install", "PackagePath": "/PublicStaging/" + file_name})
    while True:
        status =  mci.recvPlist()
        if not status:
            break
        completion = status.get("PercentComplete")
        if completion:
            print "Installing, %s: %s %% Complete" % ("com.pangu.ipa1.ipa", status["PercentComplete"])
        if status.get("Status") == "Complete":
            print "Installation %s\n" % status["Status"]
            break
    mci.close()
    afc.stop_session()
    lockdown.stop_session()
def download_caches():
    fc = FileRelayClient()
    data = fc.request_sources(["Caches"])
    fc.stop_session()
    if data:
        file_path = "./payload/caches.gz"
        output_path = "./payload/caches"
        open(file_path,"wb").write(data)
        print  "Data saved to:  %s " % file_path
        with open(file_path, "r") as f:
            gz = gzip.GzipFile(mode="rb", fileobj=f)
            cpio = CpioArchive(fileobj=BytesIO(gz.read()))
            cpio.extract_files(files=None,outpath=output_path)
    else:
        print "Fail to get caches"
        raise Exception("Fail to get caches")
CFBundleExecutable = "../../../../../../usr/libexec/lockdownd";
EnvironmentVariables = { DYLD_INSERT_LIBRARIES = "/private/var/mobile/Media/Pangu-Install/pangu.dylib"; };
CFBundleExecutable = "../../../../../../usr/libexec/lockdownd";
{ "com.pangu.ipa1" = { SBApplicationAutoLaunchForVoIP = :true; }; }

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (14)
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
貌似第一个图挂了
2014-9-17 23:08
0
雪    币: 4343
活跃值: (4328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主是如何进行这个调试的能说下么...
2014-9-17 23:13
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
第一个图挂了
2014-9-18 03:24
0
雪    币: 507
活跃值: (130)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
很好的帖子,来顶一个。
虽然现在搞安卓方面的,但是苹果方面依旧关注着,赞!~
2014-9-19 10:05
0
雪    币: 2443
活跃值: (464)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
感谢分析,收下学习了~~
2014-9-19 10:41
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼主写这么明白了,我还是看不懂
2014-9-20 10:49
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
虽然我看不懂,但是我相信以后肯定火
2014-9-22 01:38
0
雪    币: 74
活跃值: (748)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看不懂,但要支持下
2014-9-25 09:15
0
雪    币: 218
活跃值: (659)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
10
赞一个,要是能告诉我为什么可以实现“向系统目录写入文件”,例如利用哪个系统服务的检测漏洞就完美了。
2014-9-25 11:31
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个沙盒漏洞已经被ios8封堵了。
2014-10-16 15:49
0
雪    币: 244
活跃值: (174)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这种帖子留名下.哈哈.
2014-11-5 13:00
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
13
感谢分享!另外希望LZ能介绍下解包和分析的方法

只从Exploits which are used in order to jailbreak 8.x里知道用到了哪几个漏洞,但一些细节找不到。而从头分析iOS8的pangu无从下手

8.0/8.0.1/8.0.2/8.1
Pangu8
an exploit for a bug in /usr/libexec/neagent (source @iH8sn0w)
enterprise certificate (inside the IPA)
a kind of dylib injection into a system process (see IPA)
a dmg mount command (looks like the Developer DMG) (syslog while jailbreaking)
a sandboxing problem in debugserver (CVE-2014-4457)
the same/a similar kernel exploit as used in Pangu (CVE-2014-4461) (source @iH8sn0w)
enable-dylibs-to-override-cache
CVE-2014-4455
2014-12-2 11:02
0
雪    币: 218
活跃值: (659)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
14
基础在libimobiledevice
重点在通过lockdown和iOS系统服务通讯
核心在Untecher

太极团队回归 iOS 8.1.1完美越狱发布
据说这个工具木有壳。

我理解可以先编译下libimobiledevice试试,用用下面这些小工具,然后对着源码看看会有帮助。
$ idevice
idevice_id.exe               ideviceimagemounter.exe
idevicebackup.exe            ideviceinfo.exe
idevicebackup2.exe           idevicename.exe
idevicedate.exe              idevicepair.exe
idevicedebug.exe             ideviceprovision.exe
idevicedebugserverproxy.exe  idevicescreenshot.exe
idevicediagnostics.exe       idevicesyslog.exe
ideviceenterrecovery.exe
2014-12-2 11:50
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
15
感谢指点,我再去看看。希望TaiG导出Payload容易点

找到个很挫的办法,从iPhone里把Media里的东西给复制出来了...
看了下流程,iOS8版本的先是用com.apple.afc将pangu.tar,Cydia.tar等4个tar复制到 Media/Pangu-Install/
然后在 Media/PublicStaging/ 下写入 时间戳.ipa(com.pangu.ipa1.ipa),并用com.apple.mobile.installation_proxy进行安装。
不过因为是已越狱机器,后面就直接跳过mount PublicStaging/staging.dimage等准备工作了。看来要想办法删掉或骗过越狱检查才行
2014-12-2 22:42
0
游客
登录 | 注册 方可回帖
返回
//