VulnHub-Tr0ll:1 靶场渗透测试
时间:2021.2.16
靶场信息:
地址:https://www.vulnhub.com/entry/tr0ll-1,100/
发布日期:2014年8月14日
目标:得到root权限&找到proof.txt
一、信息收集
1、获取靶机IP地址
nmap -sP 192.168.137.0/24
由探测的结果可知,靶机的IP为192.168.137.131
2、扫描开放的端口和服务
nmap -sS -sV -T5 -A -p- 192.168.137.131
得到开放的端口信息:
21/tcp open ftp vsftpd 3.0.2
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
根据上面的探测结果可知,靶机的web应用暴露了robots.txt和/secret目录,nmap还探测出FTP允许匿名登录,这里就针对FTP进行攻击
查看当前目录,发现了一个名为lol.pacp的文件,这里介绍一下pacp文件
pacp文件介绍
pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们想要解析里面的数据,也必须按照一定的格式。普通的记事本打开pcap文件显示的是乱码,用安装了HEX-Editor插件的Notepad++打开,能够以16进制数据的格式显示,用wireshark这种抓包工具就可以正常打开这种文件,愉快地查看里面的网络数据报了,同时wireshark也可以生成这种格式的文件。
所以这里就先将他下载到本地,然后使用Wireshark打开查看
发现一个可疑的数据包
打开看看
由于之前发现靶机还开放了22号端口,有可能sup3rs3cr3tdirlol是登录的密码,我们试试
‘发现登不进去,那可能留给我们的就不是登录密码,换其他思路继续渗透
3、网站信息收集
之前还发现靶机开放了80端口,有个web应用,我们访问看看
用dirb爆破一下目录
挨个访问一下
控制台打开看了看,还是没啥有用的信息,之前在数据报里发现的sup3rs3cr3tdirlol可能是目录,我们试着看能不能访问
果然数据包留下的信息是这里的目录,这里发现有一个名为roflmao的文件
我们在本地下载过来,查看一下文件的类型,发现他是一个ELF 32位LSB可执行文件
我们通过strings在对象文件或二进制文件中查找可打印的字符串,这里发现了有用的信息,让我们找到地址0x0856BF
我们就访问0x0856BF目录看看
发现两个目录,我们就进去看看
这个有可能是用户名,因为下面那个文件夹里藏着密码
因为这里用户名很多,不能确定哪个才是真正可以登录的用户名,我们就使用hydra暴力破解看看
二、漏洞探测
将which_one_lol.txt下载到本地
使用hydra进行爆破:
hydra -L which_one_lol.txt -P pass.txt 192.168.137.131 ssh
爆破了半天一直失败,后来才发现Good_job_:)不是密码!!!
真正的密码就是文件名Pass.txt
那么我们现在登进去看看
三、漏洞利用
我们查看一下靶机的内核版本信息
这里补充一下查看Linux系统版本信息的一些命令:
一、查看Linux内核版本命令(两种方法)
1、cat /proc/version
2、uname -a
二、查看Linux系统版本的命令(三种方法)
1、lsb_release -a 即可列出所有版本信息,这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debain...等发行版
2、cat /etc/redhat-release 这种方法只适用于RedHat系的Linux
3、cat /etc/issue 此命令也适用于所有的Linux发行版
得到靶机为Ubuntu 14.04和3.13内核,根据内核版本去exploit-db找找看有没有可以利用的漏洞
对应的exp可以查看:
我们直接在kali里面找
找到以后将exp传到靶机上
四、提权
传到靶机之后,在靶机上编译运行生成的可执行文件
获得root权限后,查看proof.txt得到flag
这台靶机会遇到登录ssh overflow@192.168.137.131两分钟后就自动断开会话超时,然后得重新连接,这边继续讲另外一种提权方法
查看日志/var/log/cronlog,继续查看/lib/log/cleaner.py
cleaner.py脚本是以root权限执行的,并且该脚本是全局可写的,那么我们就可以利用这一点进行提权
使用ssh-keygen生成ssh认证所需的公钥和私钥文件
将 id_rsa.pub产生的密匙内容复制到cleaner.py中
#!/usr/bin/env python
import os
import sys
try:
os.system('mkdir /root/.ssh; chmod 775 .ssh; echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxQ+ERTnUS5OoeU8DKLY8Cg1HaAEZx/Si9RScNo9LMe7ZwiF2ZZ2pcN9BXhjTROVPfKArXpeDc1R/LVewjXTN0Yo38BHem0az23MxLu0upCyTZiIbVa1CXIEfDl/hddLj04H+oX4xVAYN1ahe2x5af0GTntIE/MV2uLR1zECZNGxtRGfi5gKealbIHgGwi6QGyuGiFX3TjDLqngfeIyEnH9fKZ965j6QoaIqx0h98VD0J3nqA6ssQzKgSVdEQU98XIPZCgjiIvg5WHJteNVOLnTrVl2yDF6RqyoAaSFCDezgoKGpJ5duwvKjB/6m9HjSJk+6UhZOqZX7lUO0AKcn21gCSSlKqDhKYY3k5q+u18CbItL5oBOHu7ft5fYAIzlZDLwXHGH4blTPg/8Z/X2EFWR/f3hNR58Hoeq2IA2PnJ6Tj6SpWOOQjFc5oj/6b6t8OCODdoBUKYPG7i0ojm0gYbGaqHJVILCu0r97dSOgc9Ybzj0AyAZFKMaUUa6hKYd0E= root@kali">> /root/.ssh/authorized_keys')
except:
sys.exit()
直接执行ssh root@192.168.137.131,然后输入Pass.txt即可登录
总结
巩固了pacp文件相关的知识,以及掌握了提权的一些新方法,收获很多。