一、探测靶机IP(进行信息收集)
主机发现
arp-scan -l
nmap -sS -sV -T5 -p- 192.168.10.27 -A
二、进行目录枚举
dirb http://192.168.10.27
扫除一个w目录
dirsearch -u http://192.168.10.27
三、进入网页
Eere is written in the Feänorian characters according to the mode of Beleriand: Ennyn Durin Aran
Moria: pedo mellon a minno. Im Marvi hain ech-ant: Celebrimboro Cregion teithant ithiwhin
门上用贝烈瑞安文字写着:都林之门,摩瑞亚之王。请进,朋友,多多益善。我是马尔维,这些字是凯勒布理鹏所写。
进入w目录
http://192.168.10.27/w/h/i/s/p/e/r/the_abyss/
在这个the_abyss目录来回可以看到不同的信息
其中的一些片段
whisper the_abyss
whisper”是耳语的意思,“the abyss”是深渊
dirsearch -u http://192.168.10.27/w/h/i/s/p/e/r/the_abyss/
四、再次枚举
dirb http://192.168.10.27/w/h/i/s/p/e/r/the_abyss/ -X .txt .img .html .php
发现一个random.txt
还是上面的这些话,前面的ftp无法匿名登录,这里的knock很容易想到端口敲门
使用Wireshark进行抓包,刷新random.txt
根据 TCP 协议规则,当服务器收到客户端发送的 SYN
包(用于尝试建立连接),但目标端口未开放时,会回复 RST, ACK
报文,明确拒绝连接请求。这是 TCP 协议中 “端口未开放时拒绝连接” 的标准行为
RST
标志位表示 “连接重置”,用于立即终止无效或错误的连接尝试。在端口敲⻔场景中,服务器不需要与这些端口建立真实连接,仅需通过回复 RST, ACK
告知客户端连接失败,同时后台记录端口被访问的顺序。
端口敲⻔的关键是按顺序记录端口连接尝试,而非真正建立连接。即使服务器回复 RST, ACK
,客户端仍会按预设顺序继续尝试下一个端口。服务器后台通过监控这些 SYN
请求(即使伴随 RST
回复)的顺序,验证客户端是否知晓正确的 “敲⻔序列”,从而实现安全验证。
可以看到是从77,101,108,111,110,54,57顺序敲击端口
这里可以直接使用knock工具,或者直接一个一个nc,但是有一些情况不知道端口敲门的顺序就可以使用这个脚本
knock -v 192.168.10.27 77 101 108 108 111 110 54 57
nmap -sS -sV -T5 -p- 192.168.10.27 -A
脚本
import itertools
import socket
import time
ports = [77,101,108,108,111,110,54,57]
target_check_port = 22 # 假设敲门成功后开启的端口
target_ip = "192.168.10.27"
def knock(sequence):
for port in sequence:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
s.connect((target_ip, port))
s.close()
except:
pass
time.sleep(1) # 等待服务响应
# 检测目标端口是否开放
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(2)
s.connect((target_ip, target_check_port))
s.close()
print(f"[+] Success! Sequence: {sequence}")
return True
except:
print(f"[-] Failed: {sequence}")
return False
# 生成所有排列组合(3! = 6 种)
for sequence in itertools.permutations(ports):
if knock(sequence):
break
但是这里并不是端口敲门,没有开放的端口
看了一下别的师傅写的wp,这和2025ISCC里的一道校赛Misc题相框里的图片有异曲同工的地方,
Misc的是直接得到图片在属性里找到解压密码,获得
nmap -sS -sV -T5 -p- 192.168.10.27 -A
0
将字转为笔画数
nmap -sS -sV -T5 -p- 192.168.10.27 -A
1
每两个字的笔画数转化为16进制
nmap -sS -sV -T5 -p- 192.168.10.27 -A
2
再转ASCALL码
nmap -sS -sV -T5 -p- 192.168.10.27 -A
3
而在这台靶机上这个端口的顺序并不是端口敲门
77 101 108 108 111 110 54 57
nmap -sS -sV -T5 -p- 192.168.10.27 -A
4
而在进入网页的那张图片上有这样一句话
nmap -sS -sV -T5 -p- 192.168.10.27 -A
5
nmap -sS -sV -T5 -p- 192.168.10.27 -A
6
五、FTP登录
可以看到这里有提示Welcome Balrog
nmap -sS -sV -T5 -p- 192.168.10.27 -A
7
一看就是md5,但是还是测一下
nmap -sS -sV -T5 -p- 192.168.10.27 -A
8
查看网页源代码发现有盐值
md5(md5($p).$s)
(即两次 MD5 哈希并包含盐值)
nmap -sS -sV -T5 -p- 192.168.10.27 -A
9
哈希是动态格式(dynamic_6)
dirb http://192.168.10.27
0
得到密码
dirb http://192.168.10.27
1
发现只有这一个可以登录
dirb http://192.168.10.27
2
试多了就会发现22端口关闭了。。。。。。没快照
六、提权(ssh本地私钥提权)
dirb http://192.168.10.27
3
在Ori用户下进入Ori目录发现有一首诗
dirb http://192.168.10.27
4
诗的内容是
dirb http://192.168.10.27
5
尝试sudo提权失败,这个Ori用户不能使用sudo
在Ori目录下还看到.ssh,尝试私钥提权
dirb http://192.168.10.27
6
这里是127.0.0.1,猜测是root,尝试登录
dirb http://192.168.10.27
7
提权成功
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...