更新于 

WebShell入门

webShell演化简史:小马-大马-一句话木马-加密通讯木马

一、木马-加密通讯木马-内存马
  • webshell也是一种网页,若想实现相应的代码,功能越多(文件上传、命令执行、读取目录…),代码量越大。
    • 代码量越大,文件体积越大,越不灵活。因此,通常先上传小马(至少具备文件上传功能),随后利用小马上传大马
二、一句话木马时代:

eval或者其他类似函数,把字符串当做命令执行,把payload通过POST传参给一句话木马。不同的恶意指令对应不同的payload,灵活多变。

三、webShell检测与免杀

静态网页 动态网页

  • 静态资源
    .html, css 图片 表格
  • 动态资源
    js php sp jsp java
  • 代码/命令 -> 解释/编译 -> 执行 -> 实现效果
  • 成功写入/上传至目标服务器+能够找到webShell路径并成功访问->被外部系统解析->webshell成功运行
  • 多数检测设备/程序的一般检测原理:`字符串匹配/规则匹配/正则匹配
    • 字符串混淆:ev.aleVAL
      • bing du jing tai cha sha
    • 免杀,绕WAF
      • 传统的绕过方式:大小写混写,字符串替换、加入无关字符切割具有特征字符串
      • base64编码、ROT编码、Unicode编码等等
      • 新一代绕过方式:
        • 利用现代密码学,对流量进行加密、混淆消除特征。
  • WAF性能约束,应用场景约束
    • 另辟蹊径:通过更本质的方式,检测程序运行。在程序更核心的执行层进行监控,发现恶意代码
  • IAST
    • 特点:准确性更高,性能损耗更大
  • 中国菜刀
    • image.png
  • 蚁剑
    • image.png
  • 哥斯拉
  • 冰蝎
    webshell 流量分析 数据已经进行加密(RSA)?如何分析数据?
  • 流量分析弱特征,不查看源文件,没有办法获取私钥,通过周围的外围特征查看流量;
    • 代码比较

使用wireshark 抓取 webshell 流量

webshell 查杀工具

  • D盾
    • 也是免费WAF,只支持 Windows+IIS
  • 河马
    • 支持在线查杀和客户端查杀
  • 安全狗
    • 也是免费 WAF,支持WindowLinux + IISApache
  • VT
    • 病毒查杀威胁情报在线沙箱于一体的网站
四、加解密

对称加密 vs 非对称加密
对称加码:知道如何加密就知道如何解密
以凯撒密码为例:
原文:nihao
加密密钥:3
密文:qlkdr
解密秘钥:-3

非对称加密:加密是一条路,解密是另一条路
加密使用一个秘钥解密使用另一个秘钥

对抗加密恶意流量的技术前沿之一:通过机器学习,深度学习识别加密混淆恶意流量

五、实验
SSH配置秘钥登录

要为SSH配置密钥登录,您需要完成以下步骤:

  1. 生成公共/私有密钥对

使用ssh-keygen命令生成公共/私有密钥对。在终端中输入以下命令:

ssh-keygen -t rsa

按照提示输入密钥文件的名称和密码(如果需要),然后生成公共/私有密钥对。

  1. 复制公共密钥到服务器

使用ssh-copy-id命令将公钥复制到服务器上的authorized_keys文件中。在终端中输入以下命令:

ssh-copy-id user@server_address

其中,user是您要登录的用户名,server_address是服务器的IP地址域名

  1. 配置SSH客户端

打开SSH客户端配置文件(通常位于~/.ssh/config)并添加以下行:

Host server_alias
  HostName server_address
  User user
  IdentityFile /path/to/private/key

其中,server_alias是服务器别名,server_address是服务器的IP地址或域名,user是您要登录的用户名,/path/to/private/key是您生成的私有密钥文件的路径。

  1. 连接到服务器

现在,您可以通过在终端中输入以下命令来连接到服务器:
ssh server_alias
您将被提示输入密钥文件的密码(如果设置了密码),然后您将被认证成功登录服务器

  • Success