一次比赛的靶场。
第一次搞渗透,一点不会,靠Lolita手把手教。学的东西很多,记录一下。
机器1
confluence漏洞
confluence漏洞,写内存马,哥斯拉连接
连接后往.ssh写authorized_keys,ssh连接后得到交互式shell
suid提权
此时用户是confluence,查看suid命令,发现vim。vim修改passwd,把confluence 的id设为0,得到root权限。
翻文件,翻到flag和提示。
这台机上没nmap,有curl,手动探测常见端口,发现3389,3306开了
用上面给的字符串去登录mysql root,成功登录:
机器2
udf提权
select version()
查看版本,5.5的。
show variables like "%priv%"
secure_file_priv 是空的,可以写文件,尝试用udf。
show variables like "%plugin%"
查看plugin目录,是C:\Program Files\MySQL\MySQL Server5.5\1ib\plugin
,udf文件就写在这里。
用sqlmap自带的udf,解密一下,把16进制数据复制出来,``select 0x4d5a9000… into dumpfile “C:\Program Files\MySQL\MySQL Server5.5\1ib\plugin\udf.dll”` 。udf.dll文件名任意。
create function sys_eval returns string soname 'udf.dll'
提权成功。
创建用户并加入管理员组:(返回NULL表示执行失败。用户名密码复杂度不符合要求)
由机器1提示知道,3389开放,尝试去连接。
reinetd端口转发
用reinetd配置端口转发,机器1的13389 转发到机器2的3389,RDP连接,成功连上。
mimikatz读Credentials
读取Credentials文件,得到管理员密码
sekurlsa::dpapi
dpapi::cred
nmap 扫端口,扫到机器3。端口6379开放的,一开始没扫出来,手动指定才扫到。
redis写authorized_keys
管理员桌面有一个redis客户端,用管理员密码去连接机器3的redis,成功连接。
在自己的攻击机生成ssh公钥:
用redis写到机器3:
再reineted配置端口转发,攻击机ssh连接,连接成功。
结束
搞到这里环境关了,我就没继续复现了。
以下是一些细节和了解的一些东西。
ssh
https://info.support.huawei.com/info-finder/encyclopedia/zh/SSH.html
密码认证
密钥认证
authorized_keys
用的就是密钥认证。
自己的机子运行ssh-keygen
,产生公钥和私钥。公钥写入受害机的~/.ssh/authorized_keys。攻击机ssh连接受害机时,受害机用攻击机的公钥加密数据,攻击机用自己的私钥解密数据,可以连接。
udf
https://www.freebuf.com/articles/database/291175.html
获取udf16进制
从sqlmap里拿:
解码:
得到udf文件:
用010将16进制导出:
把换行和空格去掉:
最后select 0x4d5a…即可
redis
redis 没有用户权限概念,连接上即可写文件
nc连接redis
Credentials文件
https://www.nirsoft.net/utils/credentials_file_view.html#google_vignette
使用文章里面提到的CredentialsFileView
结语
我渗透基础一点都没,甚至看到vim有suid都不能立马反应过来。要不是Lolita劝我来试试,我估计我要自我感觉理论学够了才来打渗透。这次打完后才实际感受到理论要边打边学才学得快的,哈哈哈哈。