一次从ZoomeyeAPI脚本编写到提权的渗透实践

来源:http://bbs.ichunqiu.com/thread-8965-1-1.html?from=ch

作者:野驴

首发:i春秋社区

注明:转载请务必注明i春秋社区(bbs.ichunqiu.com)

0x01 前言

又到周末了,野驴的心又骚动了,又想渗透测试了,可是苦于没有目标,殊不知在这个日新月异,技术一日千里的今天,渗透测试在很多方面都已做到工程化,只是大多内部使用,但是互联网的精神就是开放、共享,所以有了zoomeye、censys、shadan等业界搜索神器,为我们确定渗透目标提供了极大的方便,特别是zoomeye,国产自主,方便使用,最近还开放了API,简直就是业界良心(老师,我真的不是在打广告),今天我与大家分享的就是从zoomeyeAPI脚本的编写一直到提权这样一个过程。

0x02 zoomeyeAPI

什么?你还不知道什么是zoomeye?你知道吗,你这样容易被老虎拖走,我跟你讲,看这里

https://www.zoomeye.org/about

而前期还开放了API,为了节约篇幅,直接给出DOC(点我),zoomeyeAPI流程如下

下面我们就利用python批量获取目标。(当然,你要先注册账号哦)

直接上代码,详细说明请看注释。

[Python]纯文本查看复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97# coding: utf-8

importos

importrequests

importjson

access_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_token

access_token=r_decoded['access_token']

exceptException,e:

print'[-] info : username or password is wrong, please try again '

exit()

defsaveStrToFile(file,str):

"""

将字符串写如文件中

:return:

"""

withopen(file,'w') as output:

output.write(str)

defsaveListToFile(file,list):

"""

将列表逐行写如文件中

:return:

"""

s='\n'.join(list)

withopen(file,'w') as output:

output.write(s)

defapiTest():

"""

进行 api 使用测试

:return:

"""

page=1

globalaccess_token

withopen('access_token.txt','r') asinput:

access_token=input.read()

# 将 token 格式化并添加到 HTTP Header 中

headers={

'Authorization':'JWT '+access_token,

}

# print headers

while(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']

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 : account was break, excceeding the max limitations'

break

else:

print'[-] info : '+str(e.message)

else:

ifpage==10:

break

page+=1

defmain():

# 访问口令文件不存在则进行登录操作

ifnotos.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行,因为我们进行的是主机搜索,所以请求的接口为

[AppleScript]纯文本查看复制代码

?

1

https://api.zoomeye.org/host/search?query="your sring"&facet=app,os&page=

如果进行web搜索,请求接口为

[AppleScript]纯文本查看复制代码

?

1

https://api.zoomeye.org/web/search?query="port:21"&page=

Query为要搜索的关键字。

好了,zoomeeyeAPI工具打造好了,我们来搜索什么目标呢?就搜索个phpmyadmin吧,说不定有弱口令呢,多说无益,行动。在65行query处,把“your string”替换为phpmyadmin。

[AppleScript]纯文本查看复制代码

?

1

Python zoomAPI2.py

运行后,就会不断返回符合要求的主机地址了,搜索完毕后,会在当前目录下生成你的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春秋社区

注明:转载请务必注明i春秋社区(bbs.ichunqiu.com)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容

  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 2,829评论 0 0
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,383评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • =========================================================...
    lavor阅读 3,487评论 0 5
  • 对于考研政治复习来讲,大量的概念理论背诵还是第一紧要的任务,一定要死记硬背;知识点不仅需要记忆,更需要理解和使用,...
    smile_eye阅读 218评论 0 1