靶机下载地址:https://download.vulnhub.com/dc/DC-9.zip
主机发现
IP:192.168.43.192 80端口为开放状态,22端口是filtered状态
web渗透
访问80端口的web服务,打开Search界面,输入1' or 1=1 #
存在sql注入
burpsuite抓包然后保存为DC.txt,然后用sqlmap进行爆破
爆库名
有Staff、users库
爆出users库
查看当前库
爆Staff的数据,发现一个admin用户,将密码复制到https://www.somd5.com/解密
得到密码:transorbital1
前往Manage登录
登录成功,提示文件不存在 ,应该是一个文件包含,缺少包含的文件名
利用wfuzz工具进行模糊测试,找到正确的参数,由于是admin登录之后的页面,所以需要添加Cookie
过滤lines为50的数据
找到参数,为file
成功执行文件包含漏洞
发现靶机许多用户都是刚刚sql注入爆出的user表得到的
将用户名和密码生成字典,进行ssh爆破,可以用hydra和medusa
但是提示靶机没有开启22端口
这里的22端口是filtered状态,说明做了端口防护
这里的端口防护是利用“端口敲门”---knockd服务
什么是端口敲门服务?
参考:https://www.cnblogs.com/wsjhk/p/5508051.html
通常情况下,knockd服务的默认配置文件都是/etc/knockd.conf,利用文件包含漏洞读取该文件
端口敲门顺序是7469,8475,9842
按顺序连接上面的端口就可将门敲开,即打开22端口,可以采用telnet、netcat、nmap...
敲门之后再次查看22端口状态,成功open
再次爆破ssh,medusa太慢了,用hydra更快
成功爆出三个可登录用户
chandlerb | UrAG0D! |
joeyt | Passw0rd |
janitor | Ilovepeepee |
ssh登录一顿瞎操作
最终只在janitor的home目录下发现了一个隐藏文件,里面有几个未知密码
加入之前的ssh爆破的密码字典中,再次尝试爆破
又爆了个用户的密码
fredf B4-Tru3-001
登录之后又是一顿操作,最终只有sudo -l发现了个以root运行的程序
执行该程序,提示用法说明,并且还发现该程序执行的是一个python脚本test.py
全局搜索test.py脚本,为了便于观测,可用下面命令进行搜索
查看test.py源码
#!/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()
分析源码,意思简单明了,就是读取一个文件的内容,然后追加写到另外一个文件
可以、往/etc/passwd中追加一条内容,新建一个suid和guid为0的用户,即可实现root权限调用,达到提权的目的
其中/etc/passwd的数据含义
利用openssl对密码进行md5加密
passwd表示生成密码
-1 表示md5加密
-salt 加盐随机数
创建一个用户root1 密码123456
总结
经验够丰富,世界横着走!