一次从ZoomeyeAPI脚本编写到提权的***实践
作者:野驴
首发:i春秋社区
0x01 前言
又到周末了,野驴的心又骚动了,又想***测试了,可是苦于没有目标,殊不知在这个日新月异,技术一日千里的今天,***测试在很多方面都已做到工程化,只是大多内部使用,但是互联网的精神就是开放、共享,所以有了zoomeye、censys、shadan等业界搜索神器,为我们确定***目标提供了极大的方便,特别是zoomeye,国产自主,方便使用,最近还开放了API,简直就是业界良心(老师,我真的不是在打广告),今天我与大家分享的就是从zoomeyeAPI脚本的编写一直到提权这样一个过程。
0x02 zoomeyeAPI
什么?你还不知道什么是zoomeye?你知道吗,你这样容易被老虎拖走,我跟你讲,看这里
https://www.zoomeye.org/about
而前期还开放了API,为了节约篇幅,直接给出DOC(点我),zoomeyeAPI流程如下
下面我们就利用python批量获取目标。(当然,你要先注册账号哦)
直接上代码,详细说明请看注释。
# coding: utf-8
import os
import requests
import jsonaccess_token = ''
ip_list = []def login():"""输入用户米密码 进行登录操作: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 对象global access_tokenaccess_token = r_decoded['access_token']except Exception,e:print '[-] info : username or password is wrong, please try again 'exit()def saveStrToFile(file,str):"""将字符串写如文件中:return:"""with open(file,'w') as output:output.write(str)def saveListToFile(file,list):"""将列表逐行写如文件中:return:"""s = '\n'.join(list)with open(file,'w') as output:output.write(s)def apiTest():"""进行 api 使用测试:return:"""page = 1global access_tokenwith open('access_token.txt','r') as input:access_token = input.read()# 将 token 格式化并添加到 HTTP Header 中headers = {'Authorization' : 'JWT ' + access_token,}# print headerswhile(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)# print r_decoded# print r_decoded['total']for x in r_decoded['matches']:print x['ip']ip_list.append(x['ip'])print '[-] info : count ' + str(page * 10)except Exception,e:# 若搜索请求超过 API 允许的最大条目限制 或者 全部搜索结束,则终止请求if str(e.message) == 'matches':print '[-] info : account was break, excceeding the max limitations'breakelse:print '[-] info : ' + str(e.message)else:if page == 10:breakpage += 1def main():# 访问口令文件不存在则进行登录操作if not os.path.isfile('access_token.txt'):print '[-] info : access_token file is not exist, please login'login()saveStrToFile('access_token.txt',access_token)apiTest()saveListToFile('ip_list.txt',ip_list)if __name__ == '__main__':main()
这里我重点说一下第65行,因为我们进行的是主机搜索,所以请求的接口为
https://api.zoomeye.org/host/search?query="your sring"&facet=app,os&page=
如果进行web搜索,请求接口为
https://api.zoomeye.org/web/search?query="port:21"&page=
?Query为要搜索的关键字。
好了,zoomeeyeAPI工具打造好了,我们来搜索什么目标呢?就搜索个phpmyadmin吧,说不定有弱口令呢,多说无益,行动。在65行query处,把“your string”替换为phpmyadmin。
|
运行后,就会不断返回符合要求的主机地址了,搜索完毕后,会在当前目录下生成你的access_token文件access_token.txt,方便下次调用,以及搜索结果文件ip_list.txt。妈妈再也不用担心我没有目标了。哪里不会搜哪里,so easy!
0x03 ***目标
0x031 信息搜集
有了目标主机后,大家就可以尽情发挥了。这里我找到一个目标,大概是这个样子的
大家可以看到,有很多信息。我们点backups进去看看,真是意想不到的收获,数据库备份
表结构、用户名、密码等信息应有尽有,密码还是明文存储。可它用在哪呢?我们再点helpdesk_central,啊哈!登录界面出来了,可这helpdesk_central是个什么东东?问度娘
原来是控制台,用刚才获得的用户名密码尝试登录,成功了,幸福来得就是这么突然,还是管理员……
看到后边有个邮箱,看看这个管理系统属于什么组织,搞清楚对手是谁?
再看看DNS记录,尝试输入域名
原来是一家南非的一家互联网厂商
0x032 getshell
这系统转一圈,没发现可以getshell的地方,停下来,出去喝妹子约会,休息是为了更好的开始。回去以后继续,看看phpinfo吧,中规中矩,win系统,有web绝对路径,为getshell打下了基础。
再看看phpmyadmin吧,Duang!!!竟然是空口令
查看权限,我的天哪(岳云鹏表情)!是root权限,幸福来的太突然。那还等什么?绝对路径都有了,写文件吧
成功getshell,发现了很多敏感资料,还发现了前辈的足迹。
0x033 提权
看看PHP是什么权限吧,DuangDuang!!竟然是system,到目前为止,形势一片大好。
来建个用户吧,成功了
远程一下,可惜要证书,失败了,也是,总不能太顺利。本来想上MSF的,可没有公网服务器,不太方便,对方还是内网,就此打住吧。有机会再单独写个内网***的。
0x04 后记
重点在zoomAPI的学习,有了它,大家可以尽情的发挥想象,比如jboss、SSH弱口令等等,后面的***大家可能会说,这运气也太好了,各种高权限。我想说,“谁过年不吃顿饺子呢”,呸呸呸,是“运气也是实力的一部分”,重要的还是要思路清晰啦。
注明:转载请务必注明i春秋社区(bbs.ichunqiu.com)
原文链接:http://bbs.ichunqiu.com/thread-8965-1-1.html
转载于:https://blog.51cto.com/8089739/1832272
一次从ZoomeyeAPI脚本编写到提权的***实践相关推荐
- 【 Grey Hack 】万金油脚本:原地提权工具
目录 脚本源码 用法 效果及示例 版本:Grey Hack v0.7.3618 - Alpha 脚本源码 metaxploit = include_lib("/lib/metaxploit. ...
- Penetration_Testing_POC-About 渗透测试有关的POC、EXP、脚本、提权、小工具等
Penetration_Testing_POC 搜集有关渗透测试中用到的POC.脚本.工具.文章等姿势分享,作为笔记吧,欢迎补充. Penetration_Testing_POC 请善用搜索[Ctrl ...
- linux 提权一文通
目录 0x001 linux提权描述 0x002 基本Linux权限提升前的信息收集 操作系统 什么是发行类型?什么版本的? 什么是内核版本?是64位吗? 从环境变量中可以收集到什么信息?环境变量中可 ...
- SQL注入-基于MySQL的注入提权(十七)
实验目的(我的2003是32位的懒得搞了,大家参照一下吧) 普及结合dll文件对Windows系统进行启动项提权.MOF和UDF提权的基本思路,以及提权的主要方法.PS:面试时不要说打靶场什么东西,就 ...
- 103.网络安全渗透测试—[权限提升篇1]—[Linux内核漏洞提权]
我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.LINUX 内核漏洞提权 1.漏洞背景: 2.漏洞利用: (1)实验环境 (2)靶机链接 (3)突破MIME ...
- 操作系统权限提升(三)之Windows系统内核溢出漏洞提权
系列文章 操作系统权限提升(一)之操作系统权限介绍 操作系统权限提升(二)之常见提权的环境介绍 注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!!! Windows系统内核溢出漏洞提权介绍 ...
- Mysql-mof提权
0x00 mof提权原理 类似于之前的udf提权,参考https://blog.csdn.net/qq_53577336/article/details/119700116 另外一种mysql提权方式 ...
- udf提权原理研究-udf开发-linshao
目录 0x01.提权条件 0x02.版本差异 0x03.DLL文件编写 0x04.提权步骤 UDF (user defined function),用户自定义函数. 是通过dll添加新函数,对MySQ ...
- Windows系统提权姿势
windows系统提权 权限提升简介 权限提升概述 什么是提权 提权分类 提权条件 Windows提权思路 Windows系统提权 Windows提权信息收集 WMIC信息收集 自动信息收集 提权工具 ...
- Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放
MonkeyRunner 系列文章 MonkeyRunner简介 MonkeyRunner 三大模块 MonkeyRunner API MonkeyDevice API MonkeyImage API ...
最新文章
- 记一次与用户的亲密接触
- UI设计师必须了解:2015年十大移动端APP设计主流趋势
- 程序员跳槽的10个建议
- iview select 怎么清空_在使用iview时发现要先重置一下表单然后填写完后再重置可以清空Select多选框,否则清不掉,什么原因?...
- Linux系统开机启动过程分析
- asterisk的NAT配置
- java项目启动后运行方法_spring boot在启动项目之后执行的实现方法
- Java设计模式11:Facade
- 从零开始的机器人比赛(一)——项目准备篇
- [Wondgirl]从零开始学React Native之Text(五)
- IDEA上tomcat日志输出乱码 淇℃伅 鏈嶅姟鍣ㄧ増鏈彿(锛 解决办法
- Java—mysql缓存导致查询结果与数据库不一致
- python保存不了_python文件无法保存怎么解决
- 简易PC基准测试丨PerformanceTest功能简介
- 【Python】手把手教你用Python爬取某网小说数据,并进行可视化分析
- 算法导论第二章部分习题自我解答
- 如果你没空学英语,推荐你关注这几个英语大神都在看的视频号!
- react 点击弹窗之外关闭弹窗 demo
- IDA7.0 MacOS报错Oops,IDA has almost crashed!解决方案
- 联想小新java_联想小新700 i7 完美efi 黑果 mac 10.14
热门文章
- html教程转换mp3,kgm转换mp3图文版教程,值得收藏
- java中int型的取值范围_Java中int的取值范围
- 前端性能优化——字体文件压缩
- mac/macbook触摸板/鼠标/键盘失灵
- PHP输出JSON格式数据
- HttpClient发送请求时动态替换目标ip
- 关于Negative values in data passed to MultinomialNB (input X)报错问题
- python字符串相减
- python毕业设计论文-基于Python的网络爬虫的设计与实现.doc
- Linux align函数,linux内核中ALIGN解析(示例代码)