长亭实习(一)-我的技术成长之路

长亭实习(一)-我的技术成长之路

长亭外,古道边,芳草碧连天…..

今年春招很幸运面过了很多家安全公司,在四月底顺利拿到了长亭的实习offer,
可能真的是对长亭有种特殊的情怀吧,就毫不犹豫拒掉了其他offer。就这样从成都来到了北京,踏上了实习之旅。打算每周写一篇,记录我在长亭实习成长的点点滴滴^_^

我对长亭的了解一开始主要来自 p师傅和xray。p师傅在圈内算是人尽皆知了,经常看p师傅的博客,太膜拜了。今年年初墨墨在阿里白帽大会上介绍了xray,当时我也在杭州,不过我那天刚好在安恒,没能去到现场有些遗憾,后面和Adam师傅一起吃饭时聊到了xray自动化挖洞的事情,让我可以多研究一下。感谢各位师傅没有嫌弃我菜,让我加入了xray-team,就这样在xray-team群里划水,仰望各位大佬orz。

长亭面试就是李扬师傅面的我,当时就觉得特别厉害,但是来了之后才发现师傅也太强了吧,发自内心的佩服! 很早之前就看过李扬师傅的博客 https://strcpy.me/ ,我还收藏过但以前不知道就是李扬师傅,前几天和师傅聊到写博客的事,发现真的是网友面基现场,哈哈。

先说说实习的内容

我是上周三入职的,在安全策略部牧云项目组。牧云是一款长亭的安全产品,和阿里云的安骑士类似。我这周的任务主要是牧云漏洞库的录入,包括本地提权漏洞的录入和复现。

对于漏洞的筛选我和师傅有讨论过,因为CVE漏洞有很多,但要找出有真正利用价值的漏洞。所以我最终的思路就是从github上找内核提权漏洞有关的检查脚本作为基础,例如

https://github.com/mzet-/linux-exploit-suggester

所以我写了个脚本从检测脚本中正则匹配取出cve编号,14年之前的漏洞直接忽略,kernel版本太老,利用价值不大。去重后拿到exploit-db上查询该漏洞是否有exp,这里认为在 exploit-db 上有exp的才算有价值的漏洞,最后从100多个中筛选出了10多个,我感觉还算不错。

另外一个任务就是写一个辅助录入漏洞信息的工具,因为录入漏洞信息本身就是一件体力活,比如漏洞简介,cvss3数据,参考链接等都是可以复制粘贴过来的,意义不大且花费时间。师傅本意是让我写一个js脚本,测试好就放内网server端,所以让我先把项目git到本地,不过我本地各种环境的问题有些让人头疼。只好先把后端放到了我自己的云服务器上跑。

后端我是用的Python的一个框架fastapi做的接口,挺好用的。这里以脏牛漏洞为例,输入cve编号后端就会从nvd和google上抓取该漏洞的信息以json格式返回。

前几天在群里有位小伙伴推荐了JSON-handle这款插件,真的很nice,就像上图一样看到格式化的json信息,太方便了,强烈推荐!

写工具本身就是为了节省时间,因为有之前开发p站插件的经验,又顺手撸了一款牧云漏洞库辅助填写插件,最后大概这个样子。

插件自动填写了大部分漏洞信息,时间又省下来了,哈哈。

让同组的小伙伴也试了下,虽然还有改进的地方,不过自己做的东西能得到别人的认可也是蛮开心的一件事吧。

另外说一说工作中踩坑的事
本机ssh连接到虚拟机

因为复现本地提权漏洞需要用到虚拟机,装好镜像后需要在本地用ssh连接到虚拟机,因为办公室内网是做了隔离的,所以虚拟机不能用桥接模式,只能用nat模式,一开始我错误理解了nat的工作原理,我认为nat模式下,主机和虚拟机不在一个网段不能直接通信,需要端口转发流量。然而并非如此,以下是我在网上copy的一段。

理解vmware的三种模式:

  1. bridge模式:相当于一台hub,真实主机与虚拟机网段需要配置为一样,才能通信。不适合网络环境经常变化的地方。
  2. host-only模式:真实主机与虚拟机可以是不同网段,并且能上网。但不能分配自己想要的IP,发现修改IP,将无法上网。
  3. nat模式:由vnet8网卡分配IP,网关,dns,虚拟机可以设置自己想要的IP,指定的网段。
  4. 虚拟机不需要与真实主机在同一网段,也能通信,上网,更加灵活方便。

最后是师傅帮我发现了这个问题,原来是我的网卡没打开???

我也不知道为啥网卡被禁用了,也没有提示。至于需要转发端口流量的情况是在主机的局域网中有其他主机连接你的虚拟机时才需要用到。

插件开发-接口署https-解决corb-解决跨域

另外一个坑是开发插件的过程中,插件需要请求后端的接口,因为接口我是部署在自己云服务器上面的,所以肯定会涉及到跨域的问题。

第一个坑是部署https,因为漏洞库后台是部署了https的。而浏览器是不允许https网站中去加载http的数据的。所以我的接口还要部署https才行,我裂开。

为了方便,我就用了acme.sh来申请的证书。可以参考下面这篇文章来弄。

https://www.jianshu.com/p/57e5bb1277ce

其中需要提一下,如果是在阿里云买的域名,申请ssl证书时记得开通 AccessKey 。

第二个问题就是corb(Cross-Origin Read Blocking),类似于这样

浏览器在加载可以跨域资源时,在资源载入页面之前,对其进行识别和拦截的算法。

这个问题本身也是因为跨域引起的。我接口返回的json数据所以被corb给拦截了,在这里卡了很久,最后还是请教师傅,帮我解决了这个问题。

解决办法就是在后端接口header里加上access-control-allow-origin

因为这个端口的问题,我懵逼了好久,最后还是师傅提醒了我,就这样corb和跨域的问题都解决了,我太难了。

顺便说一下,发起xhr请求的时候是异步等待的,所以要判断响应状态再执行后面的代码,因为辅助填写漏洞信息必须等待请求完成才行。因为前端其实我并不太擅长,所以作为小白还是写一下。

其实还有一些插件开发里面的坑和cors的学习,我打算单独写到另一篇文章里。

总的来说,在长亭的一周多时间里学到的东西非常多,有什么不懂的问题随时都能请教李扬师傅,真的是爱了。来长亭见到了杨仔,墨墨,p师傅…长亭里各位小伙伴都特别友好,就像在学校里面,一起吃饭聊天太开心了。

另外长亭待遇也很不错,实习入职配mac,虽然实习生是air,不过还是挺香的。

吹爆我长亭!加油,奥利给!

zgao

如果有什么技术上的问题,可以加我的qq 1761321396 一起交流。

4条评论

匿名 发布于10:02 下午 - 7月 17, 2020

大佬牛逼

匿名 发布于8:00 下午 - 5月 26, 2020

NAT,估计是虚拟了一个三层交换机,所以不同网段也能通信了

匿名 发布于4:05 下午 - 5月 26, 2020

膜拜大佬

哈哈色 发布于9:57 上午 - 5月 24, 2020

看不懂系列,到此一游