dc-9打靶日记
1. nmap扫描
1.1 确认目标ip地址
1 |
|
确定目标靶机ip:192.168.48.129
1.2 目标开放TCP端口
1 |
|
开放的tcp端口只有80,那么就意味着我们可能没有什么别的途径了,只能通过http去反弹shell了
1.3 目标开放UDP端口
1 |
|
1.4 开放TCP端口详细信息
1 |
|
Apache 2.4.38
操作系统:Linux3.2-4.9
1.5 nmap漏洞扫描
1 |
|
可能存在CSRF,具体待定,还是到时候访问页面看看吧
2. 信息检索
2.1 sql注入点
通过检索和测试最后找到了sql注入点,一般对于搜索框,存在sql注入的风险比较大,对于这个靶机的网址存在一个搜索,但是非常明显的是这个搜索不是通过get方式传输数据的,所以我们通过抓包可以知道是通过POST方式传输数据的;
将其发送到重放器(Repeater)中进行测试,发现存在sql注入漏洞
搜索内容为‘Mary’ or 1=1#’仍可正常返回所有内容,可确定此处存在sql注入
后续使用sqlmap工具对其进行注入即可
1 |
|
确实成功被检测到存在sql注入漏洞,接下来就是跟get方式一样的查看数据库内容
1 |
|
1 |
|
1 |
|
1 |
|
| marym | 3kfs86sfd |
| julied | 468sfdfsd2 |
| fredf | 4sfd87sfd1 |
| barneyr | RocksOff |
| tomc | TC&TheBoyz |
| jerrym | B8m#48sd |
| wilmaf | Pebbles |
| bettyr | BamBam01 |
| chandlerb | UrAG0D! |
| joeyt | Passw0rd |
| rachelg | yN72#dsd |
| rossg | ILoveRachel |
| monicag | 3248dsds7s |
| phoebeb | smellycats |
| scoots | YR3BVxxxw87 |
| janitor | Ilovepeepee |
| janitor2 | Hawaii-Five-0 |
额。。。。。上面没一个账号是能录Manage的,我真是服了
顺便查查看刚才那个Staff
数据库吧,也是职工数据库,不知道会有什么东西;与上述数据库查看的方式类似,最后在Staff数据库中的Users
表中找到了admin用户的账户名和密码,但是密码经过加密
| admin | 856f5de590ef37314e7c3bdf6f8a66dc |
通过sqlmap使用普遍密码后缀爆破加密密码,从而爆破出来了admin用户的密码
username:admin password:transorbital1
成功登录后台管理系统;
2.2 目录爆破
1 |
|
似乎并没有扫出什么有用的目录,另辟蹊径吧
2.3 端口敲门保护SSH
参考链接:https://blog.csdn.net/weixin_48539059/article/details/130833674
通过查资料发现,Linux有个端口敲门的保护机制,通过nmap扫描也能找到22端口是过滤状态
1 |
|
登录后台管理系统的时候可以发现,似乎存在文件包含漏洞
1 |
|
可以确认确实存在该漏洞,那么我们可以用来查看一下knockd的配置文件信息,以得到敲门端口的顺序
1 |
|
因此我们可以得到通过敲门打开ssh端口22的访问端口顺序为:7469、8475、9842
因此我们通过以下指令打开端口22
1 |
|
现在可以看到22端口已经被打开了
通过我们之前收集到的信息可以知道,我们在数据库中得到的一大串用户名和密码并未使用,可以尝试通过hydra工具来破解一下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
1 |
|
成功爆破出三个账户:
username: chandlerb password: UrAG0D!
username: joeyt password: Passw0rd
username: janitor password: Ilovepeepee
通过ssh登录janitor
账户查看内容时发现一个秘密文件夹.secrets-for-putin
发现在其中发现了一个密码文件,我们将这些密码加入密码字典,在对靶机进行一次ssh密码爆破
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
1 |
|
除了的三个用户以外,还找到了一个新的用户
username: fredf password: B4-Tru3-001
3. 提权
登录用户fredf
后,通过以下命令查看,找到了一个具有root权限的文件
1 |
|
找到了一个具有可执行权限的二进制文件,我们到相关目录进行执行
1 |
|
发现执行该二进制文件后,它跟我说了一个python文件的用法test.py
,那么我们应该找到该文件,才能进行进一步的功能使用;那么其实也意味着该二进制文件应该是由该test.py文件编译出来的,我们先查看源码,了解该二进制文件的功能
1 |
|
根据输出结果我们比较容易能够确认该test.py文件应该是
/opt/devstuff/test.py
,因为跟二进制文件在同一目录下
1 |
|
根据源码可知,该test.py
文件的作用是读取第一个参数地址的文件内容,写入到第二个参数地址文件中
通过对sudoers
文件的了解,我们可以修改某一个用户的sudo
命令的执行权限进行获取root权限
首先,我们创建一个文件并写入内容,然后通过具有root权限的可执行的二进制文件写入到/etc/sudoers
文件中,实现对用户权限的获取
创建一个临时文件写入内容fredf ALL=(ALL:ALL) ALL
1 |
|
从而获得了执行sudo的权限
因而拥有了root权限
从而靶场也是成功通过啦!!!!
4. 总结
- 一些比较新颖的安全保护方案需要进一步的学习了解,比如今天学到的端口敲门保护方案
- 存在一些隐藏的文件夹不能够被直接看到可以通过ls命令的
-a
参数去查看 - 对于具有root权限的可执行文件需要格外注意,可能可以利用
- 对于一些linux系统的权限文件需要重点学习和关注,学会利用它们进行权限的获取