信息收集
主机发现
利用nmap -sn参数进行主机发现,该参数是当发现存活主机的时候,不进行端口的探测,其中的n并不是network的含义,而是not port的意思!
nmap -sn 192.168.217.0/24 -oA ./hosts
这种方式和arp-scan -l的结果几乎是一样的,作用是相同的!
发现存活主机192.168.217.130 这就是我们的靶机地址!
端口探测
nmap -sT -p- 192.168.217.130 -oA ./ports
//指定以TCP协议进行全端口的扫描
//-p- 是-p1-65535 的缩写
//-oA全格式输出
得到了四个端口分别是:21,22,80,3306
利用grep 进行匹配端口:
grep open ./ports.nmap
尝试将端口提取出来,并且合并成一行:
grep open ./ports.nmap | awk /F'/' '{print $1}' | paste -sd ','
//利用awk /F 指定分隔符为‘/’ 打印输出每一行
//利用paste 参数为-sd s:合并成一行 d:指定分隔符为‘,’
尝试将结果赋值给一个变量ports:
ports=$(grep open ./ports.nmap | awk /F'/' '{print $1}' | paste -sd ',')
echo $ports
之后我们进行一次详细的扫描:
nmap -sT -sV -sC -O -p21,22,80,3306 192.168.217.130 -oA ./details
//指定以TCP协议进行扫描
//探测各服务的版本信息
//指定使用默认脚本进行扫描
//扫描操作系统版本信息
分析探测结果:
- 21端口存在FTP服务,可能存在FTP匿名登录,存在三个目录,分别是content、docs、new-employees,可能存在信息泄露,
- 22端口运行的服务是ssh,7.2p2版本,操作系统可能是ubuntu 发现了sshhostkey
- 80端口运行的是apache 版本是2.4.18 大体能够确定操作系统就是ubuntu,网站的标题是apache的默认界面it works!
- 3306端口 mysql服务
- mac地址 该靶机运行在vmware上
- 操作系统是linux 具体的版本信息有待详细探测!
整个端口的探测到此为止了,我们收获了四个端口,之后的渗透测试,优先级是21 3306 80 22;
漏洞脚本探测
利用nmap进行漏洞的初判断:
nmap --script=vuln -p21,22,3306,80 192.168.217.130 -oA ./vulns
针对漏洞的初步探测,相较于上面的信息收集,除了发现80端口上存在着wordpress,没有什么额外的其他收获。
UDP常用端口探测
nmap -sU --top-ports 20 192.168.217.130 -oA ./udp
//指定以UDP协议进行扫描
//扫描常用的udp端口20个
渗透测试
FTP匿名登录
由于上面我们在进行信息收集的时候 发现了21端口存在FTP服务,并且我们可能存在匿名登录;
利用ftp 登录192.168.217.130靶机:
FTP匿名登录的时候 用户名是anonymous 密码为空;成功登录!由于上面进行信息收集的时候发现了三个目录,接下来我们就是看看这三个目录下存在什么文件,下载下来即可
输入binary进入二进制模式:
进入content目录下,发现存在三个文件:
输入prompt,将交互模式进行关闭(这样的话就可以一次性全部将文件下载下来,而不用每次都进行询问),后面利用mget下载所有的txt文件:
之后分别进入另外的两个目录下,将目录中的文件全部下载下来:
之后FTP利用就到此结束了,退出即可!
后面我可以查看下载下来的所有的txt文件!
看到01ec,大概能够判断这是md5,如果你判断不出来的话,可以使用hash-identify工具进行识别:
之后找一个在线的md5破解平台进行破解:
"This is not a password" 没啥有用的信息,继续向下看
后面出现一串base64的字符串“SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==”
尝试base64解码:
没用的信息
再往下看,发现了公司的成员表:
这里我们就需要有一个认知,这些信息是很重要的,不管之后会不会用得到,我们都可以收集下来。再往下发现了两行奇奇怪怪的文字:
很明显是经过了倒置和左右的对换,找个在线的网站:https://www.upsidedowntext.com/
“i don't think this is the way to root” -----我不认为这是完成靶场的途径
“we have a lot of work to do stop playing around”-----我们有很多的 工作需要做 别搁着闲逛了!
到这里FTP就结束了,没有找到什么突破口!继续向下看
3306
尝试登录mysql:
mysql -h 192.168.217.130 -u root -p
//由于我们没有密码,便尝试空密码进行登录
无法进行登录,没啥突破点,看看80端口吧
80
尝试访问的时候,确实发现的是Apache的默认界面:
之前我们还是发现了wordpress这个目录的,尝试访问下:
发现他会跳转到localhost!接下来怎么办呢?感觉存在别的目录,扫一下目录吧
发现了三个目录,分别是administrator javascript wordpress
尝试去访问这些资源:
发现内容管理系统Cuppa CMS!安装界面!
尝试进行安装一下吧,看看会发生什么,心里有个准备,说不定就会对服务器造成什么样的影响,或者直接就被管理员发现了!
安装不上。。。
此时看看cuppa cms有没有什么历史的漏洞吧:
searchsploit cuppa cms
果然发现一个漏洞,将对应的说明文件下载下来:
searchsploit -m 25971.txt
存在文件包含漏洞。该漏洞适用于windows 或者linux ;漏洞出现在/alerts/alertconfigfield.php中的22行:
漏洞代码为:
<?php include($REQUEST["urlConfig"]);?>
可以直接读取敏感文件,或者是利用伪协议进行读取!
没找到?目录是不是改成了administrator?试试:
确实存在,但是没读出什么东西啊,源码呢?
啥也没有啊。怎么回事?回到我们下载的漏洞文件中,发现文件中给出了源码的地址,我们可以尝试去看下源码,(其实这里也应该要想到的,我们用的GET方法,是不是用POST?)
看一下源码吧:
果然是POST方式才可以的!
利用curl -d参数指定 使用POST方式传递参数:
curl -d 'urlConfig=../../../../../../../../../etc/passwd' http://192.168.217.130/administrator/alerts/alertConfigField.php
读取/etc/shadow文件:
之后将看到的三个hash保存下来:
之后直接利用john工具进行破解:
拿到了两个账户的密码,我们先用w1r3s用户进行登录(感觉这个用户的权限更高):
提权写在后面吧。差不多到这里80端口的利用就结束了。
22
关于ssh的利用可以尝试利用hydra进行爆破:
我们之前收集到了几个用户名(就是公司中的各种管理人员)
hydra -L username -P /usr/share/wordlist/rockyou.txt ssh://192.168.217.130
hydra没有爆破成功!
提权
利用w1r3s账户进行ssh登录之后,查看所拥有的权限:
具有所有的权限:
利用sudo 开启一个新的bash窗口进行提权:
sudo /bin/bash