MyFileServer1

参考链接:
https://www.bilibili.com/video/BV1g14y1S75c/

使用ARP扫描局域网内存活主机

发现存活主机 1.1.1.19
使用nmap扫描主机开放的端口
使用参数:
-sS 半开放式扫描
-Pn 不进行ping扫描
--min-rate 10000 以最低10000的速率进行扫描
-sV 探测开放的端口服务
-O 探测主机系统
-sC 使用默认脚本检测
-p- 扫描0-65535端口


得到的信息: FTP可匿名登录;主机开放http服务;主机开放samba服务;主机开启nsf挂载
进行UDP协议的扫描

--top-ports 100 扫描开放频率最高的前100个端口
-Su 扫描UDP协议
没有新的信息发现
使用nmap漏洞检测脚本

没有新的信息发现
对要渗透的端口优先级排序:
21,2121,samba,80,111,445,2049,20048,22
使用匿名用户登录主机ftp服务

登录成功

提示使用命令binary模式传输文件(进入ftp一定要执行,否则可能出现文件损坏不可读现象)

查看当前目录下的文件

发现一个文件夹 pub
进入pub文件夹后发现一个log文件夹 可能是存放日志的地方
再进入log文件夹

文件夹中有很多铭感文件,例如日志文件等.

尝试下载

下载失败了
寻找下一个目标2121端口ftp服务器
也支持匿名用户登录

似乎与上一个服务并没有任何区别

一样无法下载文件
向下一个服务前进 smb服务
使用smbmap 使用-H参数指定主机

看到smbdata具有可读写权限 还有smbuser这个敏感目录
先从smbdata查看
使用smbclient指定主机目录

这里提示需要密码 我输入了123456尝试登陆 登陆到了anonymous用户中

查看文件目录

这里的文件和ftp中的文件很相似
但是ftp中并没有下载权限 在这里尝试下载试试

查看cron文件

是一些有关于计划任务的东西 现在暂时用不上 在进行提权的时候也许可以用得上
查看secure文件

这里是一些关于修改用户和用户组的一些信息

最底下可以看到 新建了一个用户组和用户名 都叫smbuser 密码是chauthtok

尝试撞一下库

ftp撞库失败了
再查看ssh配置文件

这个配置文件可以看到ssh都允许和禁止什么操作
可使用密钥进行登录

允许root用户登录

禁止使用密码登录

在之前的扫描中发现主机挂载了一个目录 可以使用 showmount -e查看主机挂载的目录文件

这里列出了主机挂载的目录 但是限制了仅允许192.168.56.0网段访问该目录
这里使用的是本地的主机 所以可以通过修改NAT网段来访问



随便挑一个



在虚拟中选择你刚刚设置好的虚拟网段

重启主机

找到主机192.168.56.10

在kali /mnt目录下新建一个文件夹smbdata

将主机smbdata目录挂载到本地/mnt/smbdata目录
使用mount命令 -t 参数指定文件系统类型(可不指定) -o 参数采用不同的参数(rw: 采用读写方式挂接设备)
mount -t nfs -o rw 192.168.56.10



文件也没有什么区别
接下来访问一下主机开放的http服务

上方指向了一个互联网地址(没什么用处)
下面My File Server说的是我的文件服务器

前端源码也没有什么可用的信息
可以使用dirbuster爆破一下目录

字典地址 /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

没有扫描到可用的信息,可能是扫描的选择范围太少了
回到前面修改File extension



扫描出了两个文件


发现了信息 My Password is rootroot1
提示密码是rootroot1
在前面的扫描结果中 主机开放了ssh/ftp端口 可以尝试撞库
但是链接ssh需要ssh密钥
所以先尝试ftp登录

ftp不允许root用户 但是在前面获取到的信息得知还有一个叫smbuser的用户

使用smbuser登录是可以的
所以smbuser的密码是rootroot1

ftp里没有文件 所在目录是 /home/smbuser
但这里的文件都拥有读写权限
只要ssh密钥对了就可以进行链接
可以尝试写一个ssh公钥私钥上传到这个目录下
使用ssh-keygen生成公钥私钥对

Enter passphrase让你写一个密码 可以选择回车生成空密码
生成一个名为test的公钥私钥对

将test.pub公钥通过ftp上传至主机
查看主机ssh配置文件

查看配置文件要求的密钥存放位置

根据要求 回到ftp创建一个 .ssh文件夹
将以.pub后缀的公钥存放在这里面

cd到 .ssh目录下 使用put将文件上传到此目录下并改名为 authorized.keys

在另一个终端里使用ssh尝试登录 使用参数 -i 指定私钥文件

可以发现成功登录ssh
内核版本不高3.10 可以考虑内核提权

查看是否存在双网卡

查看定时任务

只存在一个用户 考虑纵向提权

查看sudo

虽然使用了密钥进行登录 但是通过readme.txt得到的"rootroot1"密码依然是对的
只可惜没有sudo权限
从根目录查找具有SUID权限位且属主为root的文件
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

查了一下 https://gtfobins.github.io/ 没有什么能利用的上的
如果能使用sudo就容易很多
所以考虑内核提权
查看当前内核版本

使用searchsploit搜索exploit 内核的英文名在searchsploit中是kernel


数量太多 再进行筛选 权限提升的全名是 Privilege Escalation (在Exploit Title中可以找到)
searchsploit kernel 3.10 Privilege Escalation

这里能用得上的基本都用了 但是都不能成功
去查了一下 发现可以用脏牛提权
脏牛(Dirty Cow)是Linux内核的一个提权漏洞,之所以叫Dirty Cow,Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞。竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。
在searchsploit中搜索Dirty Cow

可以加上Privilege Escalation权限提升
第一个就是利用了 /proc/self/mem条件竞争漏洞
在主机中也存在这样的文件

使用searchsploit -p参数查找漏洞利用源文件位置

复制粘贴到当前目录下 cp /usr/share/exploitdb/exploits/linux/local/40616. .

查看一下源文件有什么利用要求

这里他说编译源文件时加上参数 -pthread 编译之后直接使用即可
在kali里编译一下试试

这里出现了报错
放到主机里尝试
使用php -S开启一个简单的http服务 web目录就在当前目录下
0:80的意思是 0.0.0.0:80 在本地机开放服务 端口是80

(也可以使用service apache2 start 然后将文件移动到/var/www/html)
回到主机中 进入tmp目录下 使用wget将源文件下载到当前目录

使用gcc编译

虽然还是有warning 但是文件已经编译出来了
赋予文件权限

已经成功提升为了root权限
