【技术分享】实现基于时间的远程代码执行(RCE)技术(含工具下载)
"0x1 序言
文中关键详细介绍了创作者在开展渗透测试新项目的全过程中,怎样运用应用场景時间意见反馈的方法,提升没法得到指令輸出意见反馈的限定,建立远程控制代码执行技术性。
人们近期开展了1个渗透测试的新项目,此项目地关键目地是检测总体目标服务器某一API的系统漏洞及其将会导致的危害。该服务器在1个被服务器防火墙防护的私有互联网中,人们最后是运用应用场景時间的指令引入进攻进行的检测。
下列是全部渗透测试的成长经历。
最先,人们发觉了1个趣味的setpost请求,它接受了2个主要参数:1个是string种类,另外是Id号。根据对string种类主要参数开展fuzzing检测,并应用场景它解决单引号的方法,人们发觉它看上去是个SQL引入,显然一般的SQL引入进攻检测并沒有取得成功。可是当你上传`sleep 12`指令,而且.com没有响应的确在12秒后回到时,人们发觉这儿理应是个突破点,能够做某些稿子。接下去,人们将想方设法进攻服务器,以建立远程控制代码执行(RCE)。
第一位每日任务理应是鉴别总体目标服务器运作在哪些服务平台上。刚开始时,依据.com没有响应的头顶部,人们觉得该服务器是应用场景Windows服务平台的,显然检测結果却很怪异,由于有的荷载理应只有在Linux的bash里边工作中,在这一服务器上却也可以工作中。
以便确认该服务器究竟应用场景哪些服务平台,人们的构思是:应用1个包括了sleep指令的“if”句子来鉴别究竟是哪家系统软件。当标准为简直,sleep指令将被执行。
以便可以实行获得所述sleep指令的結果,人们的下一个每日任务就是说想方法与该服务器开展互交。显然,建立互交也并了不起。人们试着了很多专用工具用于创建TCP联接:ncat,wget,curl等。但沒有1个能够取得成功。 随后,人们试着了别的相近的技术性:ftp客户端联接,DNS查寻,以至于ICMP数据文件,但都没有取得成功。 再之后,人们才发觉,这一服务器处于1个私有互联网中,维护该服务器的服务器防火墙容许人们运行命令,可是看不见輸出。
人们新项目的朋友得出了1个提议,即应用sleep指令的回到結果去1个空格符1个空格符的猜指令实行的輸出,或许,这一全过程能够写个自动化技术脚本制作去进行。 这很象实行应用场景時间的SQL引入相同。
那么,以便检测这类方法在有网络延时的状况下是不是合理,人们最先试着了1个简易的脚本制作,它用于分辨,在指令輸出的結果中部位X的空格符是不是Y。
根据上边这一脚本制作,人们能够获得whoami指令輸出。
上边的方式其实行得通,可是爆力枚举的猜想是1个非常低效能的方法(实际上,创作者之后也没处理这一难题= =)。除开这一难题之外,该方式也有别的比较严重的难题,例如,set主要参数仅限47字符,由于不符合这一限定将会超出荷载的较大长短。以便绕开这一限定,人们的构思是将指令的輸出切分,切分的一部分分別存有总体目标服务器的不一样临时文件中。以后,人们再先后载入切分后的指令輸出內容,那么,最后的輸出結果就是说全部內容的合拼。
运用所述方法结构的荷载,人们能够操纵set主要参数为47字符。最让人消沉的是,新的难题又出現了,人们实行的指令长短也是限定:数最多9字符长短。
以便处理这一难题,融合前边切分指令輸出的方法,人们也将指令自身的內容切分,随后分別放进不一样的脚本制作中,以后,再先后连接起来实行切分在不一样脚本制作中的指令,就可以超过人们的实际效果,减少指令的长短。(简直这件绣花针一样活)
综合性左右全部內容,人们应用场景python制做了1个专用工具,它能够进行所述全部事儿。
0x2 为何应用这一专用工具而并不是目前的专用工具?
有个相近的专用工具 commix, commix 中有许多能用的渗入出技术性,包含应用场景時间的渗入技术性,它可以鉴别总体目标服务器电脑操作系统种类,及其带有的指令引入系统漏洞。 尽管它是1个强劲的专用工具,可是人们不挑选应用 commix关键的缘故有2个:
1、commix所应用的有效载荷 很长,在人们这儿不适合。
2、次之,它比较慢,会花销很多的時间来获取1个whoami指令輸出。
0x3 该专用工具怎样工作中?
该专用工具有3个一部分:
1. 用于猜想文档(length.py或length.bat)輸出指令长短的脚本制作。
2. 用于猜想X部位空格符的ASCII值(ascii.py或ascii.bat)的脚本制作。
3. 用于上传指令并剖析响应速度,以分辨标准輸出的脚本制作。
获取全过程关键二步:
1. 将指令輸出载入文档
2. 应用length.py脚本制作猜
相关文章
- 1条评论
- 俗野清淮2022-05-28 14:49:11
- )。除开这一难题之外,该方式也有别的比较严重的难题,例如,set主要参数仅限47字符,由于不符合这一限定将会超出荷载的较大长短。以便绕开这一限定,人们的构思是将指令的輸出切分,切分的一部分分別存有总体目标服务器的不一样临时