入门靶机:DC-1的渗透测试
一、下载地址
DC-1靶机介绍:
这个靶机需要获取root的权限,并且找到5个flag。
二、步骤
1.探测靶机的IP地址
靶机的IP地址的探测一共有两种方法:
1)使用 arp-scan -l 来探测同一区域中存活的主机,如图1-1所示。这里的 192.168.1.137 是靶机的地址。
图1-1 扫描存活的主机
2)使用netdiscover -i eth0 来探测存活主机,如图1-2所示
图1-2 探测存活的主机
2.初步进行信息收集
1)进行初步的信息收集使用的工具是 nmap,使用 nmap 192.168.1.137,如图 2-1所示。可以看到这里开放的端口。我们可以看到这里开放了一个 22 ,80,111 端口。 22端口和80端口作为我们主要的突破口。
图 2-1 使用nmap
2) 我们使用渗透测试浏览器查看这个IP地址,可以看到网页的页面,如图2-2所示。
图2-2 网页的界面
3)查询这个框架的漏洞利用, drupal site的漏洞利用。可以看到在2018年的时候,这个框架爆出过漏洞,是一个远程代码的漏洞利用,如图2-3所示。
图 2-3 drupal的漏洞利用
3.漏洞的利用
1)开启 msfconsole 搜索drupal模块。我们可以看到很多的漏洞利用模块,建议从最新的漏洞模块开始利用攻击。使用命令 search drupal,如图3-1所示。可以搜索到之前的漏洞模块,使用 use 模块名 来利用漏洞。如图3-2所示。
图3-1 可利用的漏洞
图3-2 使用模块来利用漏洞
同时我们还需要来设置参数,比如攻击的参数和靶机的参数等。可以使用 show options 来看需要设置的参数,如图3-3所示。这里我们需要设置攻击的主机IP以及靶机的主机IP,如图 3-4所示。输入 exploit 来进行攻击,如图 3-5所示。当我们看到 session 1 option时,整证明我们攻击成功。
图3-3 显示参数
图 3-4 设置参数
图 3-5 开始攻击
2)在msfconsole中的命令比较少,这里我们直接进入shell,如图 3-6所示。之后我们开始使用命令行在里面开始找有用的信息,我们看到这里有一个关于 flag1.txt 的文件。打开之后发现是关于CMS的提醒,如图 3-7所示。
图 3-6 进入shell
图 3-7 信息提醒
4)这里提醒我们在网页的配置文件中应该有信息,可以上网查看网页配置文件的位置,如图 3-8所示。之后我们先查看登录用户的权限,如图 3-9所示。我们需要使用命令来提权,这里我们使用 *** python -c “import pty;pty.spawn(’/bin/bash’)” *** 来调出交互式的shell界面,显得更加直观,如图 3-10所示。
图3-8 drupal的网页配置文件
图 3-9 当前所登录用户
3-10 调出交互页面
5)下面开始提权,这里我们需要找到 带有 root权限的命令,使用带有root的命令作为跳板来实现提权。看教程发现find可以实现root提权,如图3-11所示。代表管理员权限的**#** 号出现了。
图 3-11 用find实现提权
6)根据上面flag1.txt的提示,我们需要去找网页配置文件。使用 cd /var/www ,之后可以看到3-8所示的配置文件,我们进入发现里面有一个关于setting.php的文件,我们去查看这个文件。如图 3-12所示。查找代码发现flag2.txt。
图 3-12 setting设置文件
4. 数据库渗透
1)如图 3-12 我们看到关于数据库的登录用户和密码,使用的是MySQL的数据库。我们尝试去登录数据库,如图 4-1所示。使用show tables来查看表格,发现用户表 users ,注意drupal 框架默认的用户表就是 user表,如图 4-2所示。
图 4-1 登录数据库
图 4-1 看到user表
2)查看user表中的数据,也许有收获。看到admin的用户和密码,如图 4-3所示。根据第二个flag2.txt的提醒,不能暴力破解,需要想其他的办法。
图 4-3 看到admin用户
补充:drupal常用的密码加密方式是MD5格式,但是自从 7.0之后,因为安全性的问题将加密方式改成了hash加密,这里使用的应该是自定义的加密方式。
3)drupal 7重置用户密码,上网搜索密码重置的方法。如图 4-4所示。之后开始寻找有数据库文件的目录,上网搜索得知,数据库文件在 /var/www,进入后发现密码文件,如图 4-5所示。使用php scripts/password-hash.sh 123456 来替换密码,如图4-6所示。使用 ** update users set pass=“ S S SDkztZxIgu3cGx22ngT06/IfQOWyt5nDpHbdQeKxAl8y2Omxd2XMG” where name=‘admin’,如图 4-7所示。
图 4-4 drupal 7密码重置
图 4-5发现密码文件
图 4-6 替换成功
图 4-7 用户换密码
4)密码更改成功,用户 :admin 密码:123456。在网页中寻找有用信息,发现flag3,如图 4-8所示。
图 4-8 登录信息
5.ssh爆破登录
之前看到flag4.txt的目录是/home,我们渗透测试获取shell之后,这三个文件必查看。是 /etc/passwd, /etc/group etc/shadow,当然shadow文件一般只能查看root能看,因为里面存放的是用户的密码信息。
&& 这里遇到创建文件的问题。
1)使用 hydra来进行爆破,字典kali自带的有。等待字典跑完,这里的密码已经出来,如图5-1所示。使用爆破出来的密码登录ssh,如图5-2所示。
图 5-1 爆破ssh的密码
图5-2 登录ssh
2)根据flag4的提醒,知道最后一个flag是在root的目录下面。使用之前提权的命令行进入root的目录下面,看到最后一个flag。查看即可,如图5-3.
图5-3 最后一个flag
三、反思总结
1.问题:一开始在创建字典文件去爆破ssh的时候,一直停留在网页的命令行中,忘记要使用kali的命令行去创建字典和爆破使用。
2.总结:本次初级内网渗透,设计大量的知识点。
1)使用python反弹做一个交互式的shell,主要作用是模仿真实环境的shell,看起来更加舒服一点。python -c ‘import pty;pty.spawn("/bin/sh")’
2)使用 带有root的命令来提权,这里使用的是find命令来提权。
find / -perm -u=s -type f 2>/dev/null
3)渗透测试必须要看的三个文件,是 /etc下的 passwd, group shadow。
4)可以通过找到数据库密码所在的位置,使用命令去替换加密的密码。创造一个我们自己知道的密码来登录。
3.知识点:
1)Linux下passwd文件,简单说就是包含了所有用户的密码和修改信息。
2)Linux下 group,shadow文件,/etc/group文件和/etc/shadow与/etc/passwd文件都是有关于系统管理员对用户和用户组管理时相关的文件。 /etc/group文件是有关于系统管理员对用户和用户组管理的文件,linux用户组的所有组信息都存放在/etc/group文件中。具有某种共同特征的用户集合起来就是一个用户组(Group)。用户组(Group)配置文件主要有 /etc/gshadow和/etc/group,其中/etc/gshadow是用户组的加密信息文件。
3)msfconsole是漏洞利用工具,hydra是爆破工具。
4)nmap是信息收集工具,对于扫描存活的主机,还有 netdiscover -i eth0 和arp-scan -l。
5)讯飞输入法按i键可以切换出语音输入。