靶机下载地址:下载链接
主机发现
通过arp-scan -l 发现主机
信息搜集
通过nmap收集ip地址信息(开放22,80端口) 进行访问80端口,发现有一个site目录,进一步访问发现主页面只有一些简单介绍,访问时,访问速度很慢,查看源代码才知道,去访问了一些谷歌等的资源,所以访问页面比较慢 然后扫描目录,发现该目录下有一个war.txt文件 访问war.txt发现这是一个路径 访问该路径,发现是通过base64加密的 下载下来并查看文件类型发现是zip类型 发现解压需要密码 用john进行爆破,得到密码ragnarok123 解压之后发现是一张图片,我们用binwalk查看一下,发现里面还有一个zip,命名为user 可以直接用binwalk -e king 分离出来,但是我这里binwalk有问题,用foremost -T 分离出来在解压得到user文件,发现里面这个复杂的可能为用户密码信息 尝试ssh登录,发现用下面的一串密码登陆成功 登陆成功后,发现当前目录下有两个文件,查看之后,感觉我们还需要密码,是关于ragnar用户的,通过查看/etc/passwd文件,的确存在该用户 于是,这里我们需要把这个密码通过提示破解出来(第29个素数和考拉兹猜想(选择一个数字,任何正整数。如果是偶数,则将其除以2。如果是奇数,则将其乘以3再加上1。所得数字再次重复如此步骤。最终,所得结果都是为1。)) 写一个简单判断素数的脚本,发现第29个素数是109 再写一个脚本来把考拉兹猜想的数打印出来,因为为可打印字符,所以这里需要小于256 得到一串数字,然后将这些转换成字符,发现这些字符可能为密码mR)|>^/Gky[gz=.F#j5P( 登录进去,发现执行了sudo命令 应该是开机之后,执行了某个配置文件,通过查看配置文件,发现在.profile下执行了rpyc的文件,这是可以远程操作的 同时开启了18812端口,并且是root权限运行的 所以可以利用网上rpyc的脚本
import rpyc
conn = rpyc.classic.connect('localhost')
def getshell():
import os
os.system('cp /bin/bash /tmp/bashroot && chmod +s /tmp/bashroot')
fn = conn.teleport(getshell)
fn()
然后运行bashroot就能得到root权限/tmp/bashroot -p 也可以将ragnary用户加入到sudo组里os.system(“sudo usermod -a -G ragnar”),然后再登录ragnar的时候直接sudo -s也可以得到root权限。 参考链接:https://www.cnblogs.com/mwyw/p/15673498.html
|