首先先进行主机存活探测:
可以发现靶机的地址为192.168.79.140,使用nmap扫描:
发现是开启了web端的,常规思路先访问web端看看有没有啥可看的东西
发现是个这玩意,尝试先看看功能点,没有的话直接进行目录扫描:
发现爆破出来了个admin.php,尝试访问:
发现是一个登录框,尝试正常登录测试,发现加载了一会之后还是停留在原来的页面,尝试查看源码发现提示:
经过翻译发现:
尝试web端下手,发现此路不通,尝试转换思路,从其他端口下手:
经过百度发现2049端口,发现是nfs服务,我们可以使用showmount命令查看nfs服务器的共享信息:
-e参数为显示导出目录的列表
发现共享目录为 /home/karl
尝试将共享文件挂载到kali本地:
发现全是隐藏目录,发现存在.ssh尝试查看:
发现提示权限不够,尝试把这个目录的用户给切换成root:
发现不行,尝试切换思路,创建一个1001的组,然后创建个用户,把组设置为1001即可:
创建flag用户组,组id为1001,然后创建happy用户,指定组为flag,然后切换happy用户即可
这里存在一点小失误,因为创建的用户在当前目录是没有权限的,所以挂载的时候需要挂载到/tmp也就是临时目录下
然后就是切换用户,使用happy去操作挂载下来的目录即可:
查看公钥文件,发现用户名以及主机名了
【常规思路就是尝试使用ssh携带私钥进行直接登陆靶机,但是这里是直接看过wp的,跳过】
盲猜私钥因该是带密码的,使用ssh2john进行文件转换
把私钥复制到root用户可以执行的目录下,然后切换root用户使用ssh2john进行转换:
然后就是使用john进行破解了,使用/usr/share/wordlists/rockyou.txt字典进行破解:
ok,破解出来了,尝试使用ssh进行登录即可:
这里有个知识点就是不能直接使用爆破出来的密码进行登录,那不是明文密码,只是私钥的密码,需要使用-i指定私钥
然后输入破解出来的密码在进行登陆即可:
发现登陆的是受限制的rbash,尝试使用-t参数指定bash登录:
ok,现在就是正常的了,本来是想使用python获取shell交互式的,妈的不知道为啥跳回rbash了
查找启用了SUID的文件:
其中cp启用了suid,我们可以写一个passwd,然后拷贝覆盖掉/etc/passwd,来实现提权,问了不影响账号
首先看看passwd文件,复制所有内容写入到kali,并且额外写入一个root权限用户即可
首先把靶机的passwd文件内容给搞到kali里面,然后使用openssl生成一个新的加密了的密码即可:
-1参数为在一列中列出,然后-salt没有找到参数的意思,大概就是加密方面啥的
然后就是把修改完成之后的passwd文件想办法给弄到靶机上面,然后覆盖即可:
kali开启一个http:
靶机使用wgat下载passwd文件即可:【注意是8000端口】
不知道为什么显示连接拒绝,本地浏览器也访问不了,换个方法,使用apache:
【我tm是纯鸟,一直wget下载的是靶机的ip地址,而不是kali的,666】
然后就是利用有s权限的cp命令去覆盖了
然后切换hack用户登录即可:
完美解决



