信息收集
使用arp-scan查找ip,这里可以排除后,得到我们的目标ip为192.168.187.175
nmap扫描端口扫描
TCP
输入命令;
nmap -min-rate 10000 -p- 192.168.187.175
开放的端口比较多
UDP
输入命令:
nmap -sU -min-rate 10000 -p- 192.168.187.175
处理端口信息
由于扫描端口较多,我们可以先处理一下扫描的信息
输入命令:
nmap -min-rate 10000 -p- 192.168.187.175 -oA nmapscan/ports
# -oA 将扫描结果全格式输入到nmapscan/ports文件中
输入命令:
grep open nmapscan/ports.nmap | awk -F '/' '{print $1}'
# 使用grep用来在nmapscan/ports.nmap文件中挑选带有open字样的每一行
# awk -F '/' '{print $1}' 这里的awk -F 是以/做区分
#'{print $1}' 将第一列输入
输入命令:
ports=$(grep open nmapscan/ports.nmap | awk -F '/' '{print $1}'|paste -sd ',')
#paste -sd ',' 是将输入结果合并为一行然后以逗号分隔
#然后将这个输出结果整体赋给ports
nmap扫描端口信息
输入命令:
nmap -sC -sT -A -p $ports 192.168.187.175
首选最上面,21端口开放ftp服务,支持匿名登录anonymous,还将里面的文件显示了出来,等下可以查看一番
这边的ssh,http算是常见的端口了。111是rpc端口,看内容是与下面的端口相呼应
139和445端口是samba的tcp协议端口,2121也是ftp服务,也支持匿名登录,2049,20048都是与nfs相关的端口
nmap漏洞脚本扫描
输入命令:
nmap --script=vuln -p $ports 192.168.187.175
这里扫完也没有发现可利用的漏洞信息
查看21端口
这里直接使用匿名登录查看内容,成功进入后,要进入binary模式,可以避免下载的文件被损坏一致无法读取
然后我们进入里面查看,在log目录下找到了很多的文件,如果没有经验的话,需要一个个去查看,但是我们肯定是优先查看一些敏感名字的文件,像里面有一个secure(安全)文件,我们就应该想到里面可能和安全信息相关,但是这里我们没有权限下载,费时间查看其它文件,但是也没有发现什么线索。
查看2121端口
这里的2121端口也是ftp服务,同样支持匿名登录,我们尝试一下。然后发现里面好像还是之前的配方,就不继续看了。
查看samba服务端口
这里看到开放139,445端口,也就是开启samba服务。这是一种文件共享协议,其中可能存在文件信息。我们去查看一番
输入命令:
smbmap -H 192.168.187.175
发现可执行权限文件
可以看到在目标ip下的smbdata文件有可读可写的文件权限
我们这里直接进去看看都有什么文件,然后就看到了相似的一幕,好像是之前ftp里面看到的内容,但是我们现在有了权限,可以下载文
件了
在下面看到了一个id_rsa和一个note文件,有点ssh私钥登录的提示
下载文件
这里我们将有敏感信息的文件下载下来,然后查看一番
查看文件
查看secure文件
发现用户密码信息
这里查看secure文件时,在最下面发现了用户的相关信息
smbuser:chauthtok
发现密钥信息
查看sshd_config文件内容
这里居然不让我们进行密码的身份验证,也就是无法使用密码登录了,有意思那大概率是用密钥了
发现命令提示信息
查看note.txt内容
翻译一下,说是find命令被删除了,还提示了一个getcap&capsh命令,得到了这些信息,我们记下来。
发现ssh密钥文件
查看id_rsa文件
应该就是密钥了,而且就目前的信息搜集而言,这个密钥应该是smbuser用户的,因为就看到了这一个用户,一会尝试用私钥登录一下
查看nfs协议端口
NFS服务使用的端口号是2049。nfs全称为Network File Share网络共享文件模式,开启这个服务的系统可以指定某个目录作为nfs的服务地址,作为共享文件夹。我们可以首先使用showmount工具查看靶机是否有共享文件夹
输入命令:
showmount -e 192.168.187.175
这里查看到这个里面的nfs文件为/smbdata ,和之前的文件名一样,而且访问的要求是我们的ip必须在后面那个指定的网段才行。这里就暂时也放弃了
查看web端
现在我们来访问http端口,打开一看基本一片空白,点击页面上的这个链接试试
发现跳转到了一个新的页面,显然是一个其他网站的页面,和我们的靶机关系不大。
查看页面源代码
这里也没有发现额外信息
目录爆破
这里使用dirsearch,和gobuster进行目录爆破
输入命令:
dirsearch -u http://192.168.187.175
这边可以看到爆破出了一些目录,目录名很像ssh登录的公钥部分
输入命令:
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.187.175 -x html,php,txt -t 50
这边没有发现什么
我们访问目录,发现了ssh公钥的部分,但是好像暂时用不上。
尝试ssh私钥登录
总结完得到的信息,暂时只能先试试ssh密钥登录了,这里直接登录但是失败了,下面的问题我们看不懂的可以翻译一下,看看到底出了什么问题
查看问题
这里能看到,原来是我们的私钥文件权限太大了,只能给私钥的用户用,不能给其他人任何权限
调整文件权限
那我们直接调整一下权限就行,然后再使用私钥登录,结果发现使用私钥还需要密码。真的是吐了
破解密码
我们可以使用ssh2john生成密码的hash,然后在使用john去破解。可以看到成功破解到密码
ssh私钥登录
这次输入刚刚破解的密码,终于成功登陆了。
提权
sudo提权
尝试sudo提权,但是使用密码显示不正确
suid提权
这里想用find查找具有suid权限的文件,但是执行以后没有反应,突然想起来之前的信息收集中,有一个note笔记里面写道,find命令被删除了,有点搞啊
查看计划任务
这里也没有找到可以利用的文件
查看内核版本
linpeas.sh扫描
没办法了,试试自动化工具扫描吧。扫描结束后发现有两个可能性最高的漏洞等下可以试试
然后继续看看有没有其他的信息,然后就发现了一个惊人的信息,这个靶机的shadow文件居然是明文显示的。。。。。。
很离谱,直接把root用户的加密密码放到文件里,然后john直接破解
等待时间稍微有点点长,大概用了半小时,但是最后可以成功破解出来。(太离谱了)
拿下flag
现在可以直接切换root用户,拿到flag了
额外方法
按照原本的思路去做,还有另一种做法,就是利用内核漏洞去提权。之前用工具扫描到了两个可能性很高的漏洞,从名字能看出来就是脏
牛提权我们直接去搜索一下。
这里正常情况下就需要自己慢慢尝试了,然后最终可以使用这个40616.c文件提权
首先将文件拷贝到本地上
然后编译文件
在本地开启一个http服务
然后在靶机中下载文件
然后我们编译文件,刚开始显示报错了,查了一下报错信息,我们加上对pthread的引用即可成功编译
然后执行文件,也会发现提权到root。(但是这个提权并不稳定,大概一分钟左右就会崩溃,所以要快速查看flag信息)