大土豆安全笔记 | 我哭着给快手师傅们道喜

听说今天快手上市了,我又被一大堆同龄的快手师傅们甩的远远的,眼泪止不住的流下来

近期看了一些iOS内核的漏洞,感觉对比较基础的概念有一点点了解了,接下来准备打基础,仔细学习下《Mac OS X技术内幕》这本书的重点章节,感觉大部分都是重点章节

吾爱破解2020年的精华榜,大家可以去围观一下,对于我这种安全入门新手来说,每年的精华榜都必须要看一遍的,很涨姿势

《吾爱破解论坛2020年优秀、精华TOP榜(上)》

  • https://www.52pojie.cn/thread-1349274-1-1.html

《吾爱破解论坛2020年原创区、悬赏值TOP榜(下)》

  • https://www.52pojie.cn/thread-1356509-1-1.html

这里我夹带点私货,关于吾爱破解和看雪这两个论坛我比较喜欢前者,我这些年写过一些自认为比较有质量的文章一般也都会在吾爱破解上面发

对了,我还是2016年精华榜第一名,论坛的老板们给我寄了三本技术书和一个腾讯公仔,我一直留着,作为当时还是一个学生的我来说,其实是挺大的鼓舞

IMAGE

我现在有个重要任务是多认识一些搞iOS安全的师傅,一个人玩也没啥朋友可以交流实在是太难了,所以接下来一些比较有质量的文章我会多平台都发一遍,公众号,博客,安全客,吾爱破解,看雪

安全客有稿费,如果是钱比较多的那种文章,我会直接投稿安全客,其它平台就不发了

无意中看到一个GitHub项目,安全圈公众号汇总,不出意料,又没有我,看来我确实是没在圈内

  • https://github.com/DropsOfZut/awesome-security-weixin-official-accounts

再接再厉努力输出呗,还能咋的啊

前段时间完成了从UAF到TFP0的学习,最近在看沙箱逃逸,最终结果当然是很简单,把l_perpolicy[1]置为0即可

简单描述一下过程:结构体proc用于描述进程,结构体成员p_ucred指向结构体ucred,提权的话把这个结构体一大堆成员都置为0,注意它后面一个成员cr_label

struct ucred {
	TAILQ_ENTRY(ucred)	cr_link; /* never modify this without KAUTH_CRED_HASH_LOCK */
	u_long	cr_ref;			/* reference count */
    struct posix_cred {
        uid_t	cr_uid;			/* effective user id */
        uid_t	cr_ruid;		/* real user id */
        uid_t	cr_svuid;		/* saved user id */
        ...
    } cr_posix;
	struct label	*cr_label;	/* MAC label */
	struct au_session cr_audit;		/* user auditing data */
};

成员cr_label用于存储MAC策略,每一个MAC策略实际由l_perpolicy[]存储

struct label {
	int	l_flags;
	union {
		void	*l_ptr;
		long	 l_long;
	}	l_perpolicy[MAC_MAX_SLOTS];
};

l_perpolicy[]第一个slot存储AMFI,第二个slot存储Sandbox,以此类推,下面的内存布局就很好的展示了这一点,0xfffffff00267ac00指向的是AMFI,0xfffffff002109b20指向的是Sandbox

0xfffffff002ad0380  01 00 00 00 00 00 00 00  [0xfffffff00267ac00]
0xfffffff002ad0390  [0xfffffff002109b20]     00 00 00 00 00 00 00 00

关于从TFP0到Sandbox Escape的文章我在农历年前会发出来,详细描述了MACF,AMFI,Sandbox等概念,我写的文章大家都知道的,说详细那真的是详细

贴一些我学习这些知识的过程中读过比较好的文章

《深度长文:细说iOS代码签名》

  • http://xelz.info/blog/2019/01/11/ios-code-signature/

《手把手教你突破iOS 9.x的用户空间防护》

《New approaches to operating system security extensibility》

  • https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-818.pdf

《Monitoring macOS, Part I: Monitoring Process Execution via MACF》

  • https://www.fortinet.com/blog/threat-research/monitoring-macos–part-i–monitoring-process-execution-via-macf

《Chapter 6. The TrustedBSD MAC Framework》

  • https://docs.freebsd.org/en_US.ISO8859-1/books/arch-handbook/mac.html

《The Apple Sandbox》

  • https://dl.packetstormsecurity.net/papers/general/apple-sandbox.pdf

《Hack in the (sand)Box》

  • http://newosxbook.com/files/HITSB.pdf

我看了一篇关于程序员转行考公务员的帖子,写的挺好,非常清晰的程序员思维,从描述来看应该是同龄人,2017年毕业进了互联网公司写代码,现在考公上岸,整体看下来,考公还是挺复杂的,流程相当繁琐

  • https://github.com/coder2gwy/coder2gwy

全国各地公务员待遇水平,确实还是一线大城市舒服一些

  • https://www.zhihu.com/question/21282141

像我这样的就不适合当个公务员,我都计划好了,等我四五十岁赚够了钱,早早退休到海边盖个院子,承包一块近海养殖场,每天开船出海钓钓鱼,小院子里种种菜,隔三差五好朋友们来家里坐坐,我给弄一桌野生海鲜和绿色蔬菜,巴适得板!