【渗透实践】从ZoomeyeAPI脚本编写到提权

阅读:581 2019-03-19 14:42:47 来源:新网

【渗透实践】从zoomeyeapi脚本编写到提权

0x01前言又到周末了,野驴的心又骚动了,又想渗透测试了,可是苦于没有目标,殊不知在这个日新月异,技术一日千里的今天,渗透测试在很多方面都已做到工程化,只是大多内部使用,但是互联网的精神就是开放、共享,所以有了zoomeye、censys、shadan等业界搜索神器,为我们确定渗透目标提供了极大的方便,特别是zoomeye,国产自主,方便使用,最近还开放了api,简直就是业界良心(老师,我真的不是在打广告),今天我与大家分享的就是从zoomeyeapi脚本的编写一直到提权这样一个过程。0x02zoomeyeapi什么?你还不知道什么是zoomeye?你知道吗,你这样容易被老虎拖走,我跟你讲,看这里https://www.zoomeye.org/about而前期还开放了api,为了节约篇幅,直接给出doc(点我),zoomeyeapi流程如下下面我们就利用python批量获取目标。(当然,你要先注册账号哦)直接上代码,详细说明请看注释。[python]纯文本查看复制代码?#coding:utf-8importosimportrequestsimportjsonaccess_token=''ip_list=[]deflogin():"""输入用户米密码进行登录操作:return:访问口令access_token"""user=raw_input('[-]input:username:')passwd=raw_input('[-]input:password:')data={'username':user,'password':passwd}data_encoded=json.dumps(data)#dumps将python对象转换成json字符串try:r=requests.post(url='https://api.zoomeye.org/user/login',data=data_encoded)r_decoded=json.loads(r.text)#loads()将json字符串转换成python对象globalaccess_tokenaccess_token=r_decoded['access_token']exceptexception,e:print'[-]info:usernameorpasswordiswrong,pleasetryagain'exit()defsavestrtofile(file,str):"""将字符串写如文件中:return:"""withopen(file,'w')asoutput:output.write(str)defsavelisttofile(file,list):"""将列表逐行写如文件中:return:"""s='n'.join(list)withopen(file,'w')asoutput:output.write(s)defapitest():"""进行api使用测试:return:"""page=1globalaccess_tokenwithopen('access_token.txt','r')asinput:access_token=input.read()#将token格式化并添加到httpheader中headers={'authorization':'jwt'+access_token,}#printheaderswhile(true):try:r=requests.get(url='https://api.zoomeye.org/host/search?query="phpmyadmin"&facet=app,os&page='+str(page),headers=headers)r_decoded=json.loads(r.text)#printr_decoded#printr_decoded['total']forxinr_decoded['matches']:printx['ip']ip_list.append(x['ip'])print'[-]info:count'+str(page*10)exceptexception,e:#若搜索请求超过api允许的最大条目限制或者全部搜索结束,则终止请求ifstr(e.message)=='matches':print'[-]info:accountwasbreak,excceedingthemaxlimitations'breakelse:print'[-]info:'+str(e.message)else:ifpage==10:breakpage+=1defmain():#访问口令文件不存在则进行登录操作ifnotos.path.isfile('access_token.txt'):print'[-]info:access_tokenfileisnotexist,pleaselogin'login()savestrtofile('access_token.txt',access_token)apitest()savelisttofile('ip_list.txt',ip_list)if__name__=='__main__':main()这里我重点说一下第65行,因为我们进行的是主机搜索,所以请求的接口为[applescript]纯文本查看复制代码?1https://api.zoomeye.org/host/search?query="yoursring"&facet=app,os&page=如果进行web搜索,请求接口为[applescript]纯文本查看复制代码?1https://api.zoomeye.org/web/search?query="port:21"&page=query为要搜索的关键字。好了,zoomeeyeapi工具打造好了,我们来搜索什么目标呢?就搜索个phpmyadmin吧,说不定有弱口令呢,多说无益,行动。在65行query处,把“yourstring”替换为phpmyadmin。[applescript]纯文本查看复制代码?1pythonzoomapi2.py运行后,就会不断返回符合要求的主机地址了,搜索完毕后,会在当前目录下生成你的access_token文件access_token.txt,方便下次调用,以及搜索结果文件ip_list.txt。妈妈再也不用担心我没有目标了。哪里不会搜哪里,soeasy!0x03渗透目标0x031信息搜集有了目标主机后,大家就可以尽情发挥了。这里我找到一个目标,大概是这个样子的大家可以看到,有很多信息。我们点backups进去看看,真是意想不到的收获,数据库备份表结构、用户名、密码等信息应有尽有,密码还是明文存储。可它用在哪呢?我们再点helpdesk_central,啊哈!登录界面出来了,可这helpdesk_central是个什么东东?问度娘原来是控制台,用刚才获得的用户名密码尝试登录,成功了,幸福来得就是这么突然,还是管理员……看到后边有个邮箱,看看这个管理系统属于什么组织,搞清楚对手是谁?再看看dns记录,尝试输入域名原来是一家南非的一家互联网厂商0x032getshell这系统转一圈,没发现可以getshell的地方,停下来,出去喝妹子约会,休息是为了更好的开始。回去以后继续,看看phpinfo吧,中规中矩,win系统,有web绝对路径,为getshell打下了基础。再看看phpmyadmin吧,duang!!!竟然是空口令查看权限,我的天哪(岳云鹏表情)!是root权限,幸福来的太突然。那还等什么?绝对路径都有了,写文件吧成功getshell,发现了很多敏感资料,还发现了前辈的足迹。0x033提权看看php是什么权限吧,duangduang!!竟然是system,到目前为止,形势一片大好。来建个用户吧,成功了远程一下,可惜要证书,失败了,也是,总不能太顺利。本来想上msf的,可没有公网服务器,不太方便,对方还是内网,就此打住吧。有机会再单独写个内网渗透的。0x04后记重点在zoomapi的学习,有了它,大家可以尽情的发挥想象,比如jboss、ssh弱口令等等,后面的渗透大家可能会说,这运气也太好了,各种高权限。我想说,“谁过年不吃顿饺子呢”,呸呸呸,是“运气也是实力的一部分”,重要的还是要思路清晰啦。

上一篇: HTTP协议详细总结
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服