Year of the Pig
有些猪会飞,有些有故事要讲。开始吧!
端口扫描
循例nmap
Web枚举
进入80
gobuster扫
进到/admin,尝试弱口令,给出了密码提示
密码本身的一些很简单的单词,密码的后三位是两位数字加一个特殊字符
我们利用cewl去爬取网页,获取单词表
这里可以利用john的rule去生成字典
生成保存
由于登录时密码是经过md5的,那么我们也需要对明文密码字典处理一下
python把明文密码给MD5,由于区分大小写,默认获取的字典爆了没爆出来,于是进行全小写
import hashlib
f = open('pass.txt', 'r')
for pwd in f.readlines():
obj = hashlib.md5()
obj.update(pwd.strip().lower().encode("utf-8"))
print(obj.hexdigest())
hydra在这里似乎有些问题,直接换ffuf
修改一下python脚本,让他把明文密码也输出出来,直接拿着hash去比对
登进后台,可以执行命令,但有限制,getshell似乎几乎不可能
拿着marco的凭据,尝试登ssh, 成功,同时拿到flag1
横向移动
查找marco所在的web-developers组有权限管理的文件
显然整个Web我们都有权管理
/var/www下有个db,想必里面就存放了另一个账户的凭据
但该文件不归我们所有
除了数据库文件以外,其他Web的文件我们基本都有权限读写,而web服务是由www-data用户启动的
这意味着我们可以直接往网站根目录写shell.php,然后获得www-data的shell,再读取db文件
利用she11.php
给admin.db个777的权限然后这个shell就可以丢掉了
开启http服务把admin.db传回攻击机
拿到curtis的md5 hash,直接用CrackStation秒出
直接su过去,同时拿到flag2
权限提升
查看sudo -l
很简单的提权,我们需要先回到marco,因为只有它我们才能再/var/ww/html下操作
创建两目录,然后ln创建个链接文件指向passwd
openssl生成密码hash
利用sudoedit,添加账号
保存退出,直接su过去,成功拿到root