Repository: heikanet/whohk Branch: master Commit: 1143af45b06c Files: 24 Total size: 359.5 KB Directory structure: gitextract_jbnhp2b8/ ├── README.md ├── rules/ │ ├── malware/ │ │ ├── MALW_BackdoorSSH.yar │ │ ├── MALW_BlackRev.yar │ │ ├── MALW_PE_sections.yar │ │ ├── ddg.yar │ │ ├── h2miner.yar │ │ ├── lsdminer.yar │ │ ├── rainbowminer.yar │ │ ├── skipmap.yar │ │ ├── startminer.yar │ │ ├── sysupdataminer.yar │ │ ├── teamtnt.yar │ │ └── watchbogminer.yar │ ├── utils/ │ │ └── wget.yar │ ├── webshell.yar │ ├── webshells/ │ │ ├── WShell_APT_Laudanum.yar │ │ ├── WShell_ASPXSpy.yar │ │ ├── WShell_Behinder.yar │ │ ├── WShell_Drupalgeddon2_icos.yar │ │ ├── WShell_PHP_Anuna.yar │ │ ├── WShell_PHP_in_images.yar │ │ └── WShell_THOR_Webshells.yar │ └── xunjian.yar └── whohk.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: README.md ================================================ # whohk whohk,linux下一款强大的应急响应工具 Release Release Release ![GitHub Repo stars](https://img.shields.io/github/stars/wgpsec/whohk?color=success) ![GitHub forks](https://img.shields.io/github/forks/wgpsec/whohk) ![GitHub all release](https://img.shields.io/github/downloads/wgpsec/whohk/total?color=blueviolet) 在linux下的应急响应往往需要通过繁琐的命令行来查看各个点的情况,有的时候还需要做一些格式处理,这对于linux下命令不是很熟悉的人比较不友好。本工具将linux下应急响应中常用的一些操作给集合了起来,并处理成了较为友好的格式,只需要通过一个参数就能代替繁琐复杂的命令来实现对各个点的检查。 支持主流的Linux,包含centos、redhat、ubuntu、debian、opensuse。 ## 使用指南 ``` optional arguments: -h, --help show this help message and exit -user 用于查看系统可登录账户和空口令账户(无参数) -history 用于查看所有用户的敏感历史命令(无参数) -cron 用于查看所有用户的定时任务(无参数) -ip 用于查看外连ip(无参数) --pid 1234 用于定位进程物理路径(参数为pid号) --ssh-fip 用于查看ssh登录失败的ip和次数(无参数) --ssh-fuser 用于查看ssh登录失败的用户和次数(无参数) --ssh-sip 用于查看ssh登录成功的ip和次数(无参数) --ssh-sinfo 用于查看ssh登录成功的用户详情(无参数) --file-cron 7 用于查看系统各个级别定时任务目录中,n天内被修改的文件(参数为天数) --file-starup 7 用于查看系统启动项目录中,n天内被修改的文件(参数为天数) --file-os 7 用于查看系统重要目录中,n天内被修改的文件(参数为天数) --file-change /www 7 php 用于查看在n天内指定目录中指定后缀的被修改的文件(参数为物理路径、天数、后缀) --file-perm /www jsp 777 用于查看指定目录下指定后缀指定权限的文件(参数为物理路径、后缀、天数) --s-backdoor /home 用于检测指定路径下的恶意样本(参数为物理路径) --s-webshell /var/www 用于检测指定路径下的webshell(参数为物理路径) ``` ## 细节 由于懒得重新截图,所以就直接放公众号之前发的图了 - whohk,一款强大的linux应急响应辅助工具:[点击跳转](https://mp.weixin.qq.com/s?__biz=MzIyNDkwNjQ5Ng==&mid=2247484224&idx=1&sn=616be624b7936abef282c5611f710a6a&chksm=e8069f2fdf71163973a712de55de80b042fb6224fa9179b4a655b5fe2e5be647f63d7f038e60&token=1653316416&lang=zh_CN#rd) - [更新]Linux下应急响应工具whohk v1.1版本:[点击跳转](https://mp.weixin.qq.com/s?__biz=MzIyNDkwNjQ5Ng==&mid=2247485371&idx=1&sn=8f6a32e28bf06e100edcd9241a8923e4&chksm=e8069bd4df7112c28a416e740b6025982d1d4a920906f9e3aa2f6244c5a691af6cf9a96bb55d#rd) - 如何打造一款自己的恶意样本检测工具:[点击跳转](https://mp.weixin.qq.com/s?__biz=MzIyNDkwNjQ5Ng==&mid=2247484475&idx=1&sn=7180cb7a18335c71ef561f9ec468f601&chksm=e8069854df7111425708634704d07832764f02545065717fd45424abb960938cbc121a417eb5&token=393884268&lang=zh_CN#rd) ## 碎碎念 - 2020-09-21 > 在历次的Linux系统下应急中感受到了敲命令的繁琐,以及有些太长记不住的命令当着客户面去百度的尴尬,决定把Linux下应急检查的一些点的命令用工具来集合到一起。在这个工具之前其实还做过一个windows/Linux系统下的安全巡检小工具,但由于对我的工作意义不大,所以最后经过一顿操作,有了`whohk`这一款小工具。 - 2021-08-26 > 在过去的近一年里应急的次数不那么频繁了,基本无视这个工具。不过有一次登录公众号后,发现有一些粉丝私信提新功能以及反馈了一些问题(原谅我半年登一次公众号),所以这次根据之前的反馈,进行了一些更新。 - 2022-04-30 > 发现这个工具居然成为了我GitHub stars最多的一个项目,或许真的帮助到了一些人。 > 决定开源。代码写的很简单,也可以说比较烂,本次上传的是2021.08.26的版本,也是目前最新版(因为只要没有新的需求就不会更新,以及我~~没有时间~~懒也不会更新🐶)。 > > ~~不会摆烂。目前有一些新的想法,但是很模糊,大家有好的建议欢迎提issue。~~ 摆烂中... ## TODO - [ ] 重构,代码写的优雅点 - [ ] Windows支持 - [ ] server端 - [ ] 多台主机数据聚合分析 ## 交流 ![](img/taixiayanshu.png) ![](img/wgpsec.png) ================================================ FILE: rules/malware/MALW_BackdoorSSH.yar ================================================ /* This Yara ruleset is under the GNU-GPLv2 license (http://www.gnu.org/licenses/gpl-2.0.html) and open to any user or organization, as long as you use it under this license. */ rule SSH_backdoor { meta: description = "Custome SSH backdoor based on python and paramiko - file server.py" author = "Florian Roth" reference = "https://goo.gl/S46L3o" date = "2015-05-14" hash = "0953b6c2181249b94282ca5736471f85d80d41c9" strings: $s0 = "command= raw_input(\"Enter command: \").strip('n')" fullword ascii $s1 = "print '[-] (Failed to load moduli -- gex will be unsupported.)'" fullword ascii $s2 = "print '[-] Listen/bind/accept failed: ' + str(e)" fullword ascii $s3 = "chan.send(command)" fullword ascii $s4 = "print '[-] SSH negotiation failed.'" fullword ascii $s5 = "except paramiko.SSHException, x:" fullword ascii condition: filesize < 10KB and 5 of them } ================================================ FILE: rules/malware/MALW_BlackRev.yar ================================================ /* This Yara ruleset is under the GNU-GPLv2 license (http://www.gnu.org/licenses/gpl-2.0.html) and open to any user or organization, as long as you use it under this license. */ rule BlackRev_BotNet { meta: author = "Dennis Schwarz" date = "2013-05-21" description = "Black Revolution DDoS Malware. http://www.arbornetworks.com/asert/2013/05/the-revolution-will-be-written-in-delphi/" origin = "https://github.com/arbor/yara/blob/master/blackrev.yara" strings: $base1 = "http" $base2 = "simple" $base3 = "loginpost" $base4 = "datapost" $opt1 = "blackrev" $opt2 = "stop" $opt3 = "die" $opt4 = "sleep" $opt5 = "syn" $opt6 = "udp" $opt7 = "udpdata" $opt8 = "icmp" $opt9 = "antiddos" $opt10 = "range" $opt11 = "fastddos" $opt12 = "slowhttp" $opt13 = "allhttp" $opt14 = "tcpdata" $opt15 = "dataget" condition: all of ($base*) and 5 of ($opt*) } ================================================ FILE: rules/malware/MALW_PE_sections.yar ================================================ /* This Yara ruleset is under the GNU-GPLv2 license (http://www.gnu.org/licenses/gpl-2.0.html) and open to any user or organization, as long as you use it under this license. */ import "pe" rule packered : packer PE { meta: author = "@j0sm1" date = "2016/10/21" description = "The packer/protector section names/keywords" reference = "http://www.hexacorn.com/blog/2012/10/14/random-stats-from-1-2m-samples-pe-section-names/" filetype = "binary" strings: $s1 = ".aspack" wide ascii $s2 = ".adata" wide ascii $s3 = "ASPack" wide ascii $s4 = ".ASPack" wide ascii $s5 = ".ccg" wide ascii $s6 = "BitArts" wide ascii $s7 = "DAStub" wide ascii $s8 = "!EPack" wide ascii $s9 = "FSG!" wide ascii $s10 = "kkrunchy" wide ascii $s11 = ".mackt" wide ascii $s12 = ".MaskPE" wide ascii $s13 = "MEW" wide ascii $s14 = ".MPRESS1" wide ascii $s15 = ".MPRESS2" wide ascii $s16 = ".neolite" wide ascii $s17 = ".neolit" wide ascii $s18 = ".nsp1" wide ascii $s19 = ".nsp2" wide ascii $s20 = ".nsp0" wide ascii $s21 = "nsp0" wide ascii $s22 = "nsp1" wide ascii $s23 = "nsp2" wide ascii $s24 = ".packed" wide ascii $s25 = "pebundle" wide ascii $s26 = "PEBundle" wide ascii $s27 = "PEC2TO" wide ascii $s28 = "PECompact2" wide ascii $s29 = "PEC2" wide ascii $s30 = "pec1" wide ascii $s31 = "pec2" wide ascii $s32 = "PEC2MO" wide ascii $s33 = "PELOCKnt" wide ascii $s34 = ".perplex" wide ascii $s35 = "PESHiELD" wide ascii $s36 = ".petite" wide ascii $s37 = "ProCrypt" wide ascii $s38 = ".RLPack" wide ascii $s39 = "RCryptor" wide ascii $s40 = ".RPCrypt" wide ascii $s41 = ".sforce3" wide ascii $s42 = ".spack" wide ascii $s43 = ".svkp" wide ascii $s44 = "Themida" wide ascii $s45 = ".Themida" wide ascii $s46 = ".packed" wide ascii $s47 = ".Upack" wide ascii $s48 = ".ByDwing" wide ascii $s49 = "UPX0" wide ascii $s50 = "UPX1" wide ascii $s51 = "UPX2" wide ascii $s52 = ".UPX0" wide ascii $s53 = ".UPX1" wide ascii $s54 = ".UPX2" wide ascii $s55 = ".vmp0" wide ascii $s56 = ".vmp1" wide ascii $s57 = ".vmp2" wide ascii $s58 = "VProtect" wide ascii $s59 = "WinLicen" wide ascii $s60 = "WWPACK" wide ascii $s61 = ".yP" wide ascii $s62 = ".y0da" wide ascii $s63 = "UPX!" wide ascii condition: // DOS stub signature PE signature uint16(0) == 0x5a4d and uint32be(uint32(0x3c)) == 0x50450000 and ( for any of them : ( $ in (0..1024) ) ) } ================================================ FILE: rules/malware/ddg.yar ================================================ // ddg脚本通配规则 rule linux_miner_ddg_script_gen { meta: description = "ddg shell script general" author = "G4rb3n" reference = "https://blog.netlab.360.com/ddg-a-mining-botnet-aiming-at-database-server" date = "2020-5-13" strings: $s1 = "/i.sh" $s2 = "/ddgs" $c1 = "/var/spool/cron/root" $c2 = "crontab -" condition: ( filesize < 50KB ) and ( all of ($s*) ) and ( 1 of ($c*) ) } // v5000以上版本的规则 rule linux_miner_ddg_script_v5 { meta: description = "ddg shell script v5000+" author = "G4rb3n" reference = "https://blog.netlab.360.com/ddg-upgrade-to-new-p2p-hybrid-model" date = "2020-5-13" url = "http://67.205.168.20:8000/i.sh" md5_v5023 = "FE0D7BCF06779EF0CC6702FBB7C330E7" md5_v5019 = "D6F402F6DCB75EA1A81A7C596CDA50C5" strings: $s1 = "/i.sh" $s2 = /\/50[0-9]{2}\/ddgs.+/ $c1 = "/var/spool/cron/root" $c2 = "crontab -" condition: ( filesize < 50KB ) and ( all of ($s*) ) and ( 1 of ($c*) ) } ================================================ FILE: rules/malware/h2miner.yar ================================================ // H2Miner脚本通配规则 rule linux_miner_h2miner_script_gen { meta: description = "h2miner script general" author = "G4rb3n" reference = "https://mp.weixin.qq.com/s/iNq8SdTZ9IrttAoQYLJw5A" date = "2020-7-31" md5_2001 = "A626C7274F51C55FDFF1F398BB10BAD5" md5_2005 = "E600632DA9A710BBA3C53C1DFDD7BAC1" md5_2007 = "BE17040E1A4EAF7E2DF8C0273FF2DFD2" md5_2008 = "69886742CF56F9FC97B97DF0A19FC8F0" strings: $s1 = "echo \"P OK\"" $s2 = "echo \"T DIR $DIR\"" $s3 = "echo \"No md5sum\"" $s4 = "echo \"P NOT EXISTS\"" $s5 = "case $sum in" $x1 = "ulimit -n 65535" $x2 = "https://bitbucket.org" $c1 = "kingsing" $c2 = "salt-store" $c3 = "195.3.146.118" $c4 = "217.12.210.192" condition: ( filesize < 50KB ) and ( ( 4 of ($s*) ) and ( ( 2 of ($x*) ) or ( 2 of ($c*) ) ) ) } ================================================ FILE: rules/malware/lsdminer.yar ================================================ // LSDMiner脚本通配规则 rule linux_miner_lsdminer_script_gen { meta: description = "lsdminer script general" author = "G4rb3n" reference = "https://www.anquanke.com/post/id/193116" date = "2020-5-21" strings: $s1 = "hwlh3wlh44lh" $s2 = "Circle_MI" $s3 = "thyrsi.com" $s4 = "img.sobot.com" $s5 = "cdn.xiaoduoai.com" $s6 = "res.cloudinary.com" $s7 = "pastebin.com" $s8 = "user-images.githubusercontent.com" condition: ( filesize < 50KB ) and ( 4 of ($s*) ) } ================================================ FILE: rules/malware/rainbowminer.yar ================================================ // StartMiner脚本通配规则 rule linux_miner_rainbowminer_script_gen { meta: description = "rainbowminer script general" author = "G4rb3n" reference = "https://mp.weixin.qq.com/s/KUK2hW7oRA2hN_cJ5QaYUA" date = "2020-5-21" strings: $s1 = "=\"/lib64/" $s2 = "pdflushType=\"" $s3 = "kthreadds" $s4 = "processhider" $s5 = "paDKiUwmHNUSW7E1S18Cl" // ssh公钥片段 $s6 = "cron.py" $s7 = "/pdflushs" $x1 = "Rainbow66" $x2 = "47.106.187.104" condition: ( filesize < 50KB ) and ( ( 4 of ($s*) ) or ( 1 of ($x*) ) ) } ================================================ FILE: rules/malware/skipmap.yar ================================================ // SkipMap脚本通配规则 rule linux_miner_skipmap_script_gen { meta: description = "skipmap shell script general" author = "G4rb3n" reference = "https://blog.trendmicro.com/trendlabs-security-intelligence/skidmap-linux-malware-uses-rootkit-capabilities-to-hide-cryptocurrency-mining-payload" date = "2020-8-7" strings: $s1 = "chmod +x /var/lib/" $s2 = "/bin/get" $s3 = "/bin/cur" $c1 = "pm.ipfswallet.tk" $c2 = "a.powerofwish.com" condition: ( filesize < 10KB ) and ( all of ($s*) ) and ( 1 of ($c*) ) } ================================================ FILE: rules/malware/startminer.yar ================================================ // StartMiner脚本通配规则 rule linux_miner_startminer_script_gen { meta: description = "startminer script general" author = "G4rb3n" reference = "https://s.tencent.com/research/report/978.html" date = "2020-5-20" strings: $s1 = "echo \"P OK\"" $s2 = "echo \"T DIR $DIR\"" $s3 = "echo \"No md5sum\"" $s4 = "echo \"P NOT EXISTS\"" $s5 = "case $sum in" $x1 = "f2=\"" $x2 = "downloadIfNeed()" $x3 = "judge()" $x4 = "judge2()" $x5 = "start.jpg" $c1 = "jukesxdbrxd.xyz" $c2 = "37.44.212.223" $c3 = "107.189.11.170" condition: ( filesize < 50KB ) and ( ( 4 of ($s*) ) and ( ( 2 of ($x*) ) or ( 1 of ($c*) ) ) ) } ================================================ FILE: rules/malware/sysupdataminer.yar ================================================ // SysUpdataMiner脚本通配规则 rule linux_miner_sysupdataminer_script_gen { meta: description = "sysupdataminer script general" author = "G4rb3n" reference = "https://www.freebuf.com/articles/system/172987.html" date = "2020-6-4" strings: $s1 = "miner_url" $s2 = "miner_size" $s3 = "sh_url" $s4 = "config_url" $s5 = "config_size" $s6 = "scan_url" $s7 = "scan_size" $s8 = "watchdog_url" $s9 = "watchdog_size" $x1 = "/etc/update.sh" $x2 = "/etc/sysupdate" $x3 = "/etc/networkservice" $x4 = "/usr/bin/cur" fullword ascii $x5 = "/usr/bin/wge" fullword ascii $c1 = "185.181.10.234" $c2 = "de.gsearch.com.de" $c3 = "AAAAB3NzaC1yc2EAAAADAQABAAABAQC9WKiJ7yQ6HcafmwzDMv1RKxPdJI" condition: ( filesize < 50KB ) and ( ( ( 3 of ($s*) ) or ( 2 of ($x*) ) ) and ( 2 of ($c*) ) ) } ================================================ FILE: rules/malware/teamtnt.yar ================================================ // TeamTNT脚本通配规则 rule linux_miner_teamtnt_script_gen { meta: description = "teamtnt shell script general" author = "G4rb3n" reference = "https://x.threatbook.cn/nodev4/vb4/article?threatInfoID=2813" date = "2020-8-8" md5_2008 = "BE5B1BE30CF430AF6F76776FEBE805F2" md5_2009 = "856109FAFF327638BA3A8EC5800E988C" strings: $s1 = "LDR=\"wget -q -O -\"" $s2 = "LDR=\"curl\"" $s3 = "echo \"cron good\"" $s4 = "echo \"setup cron\"" $s5 = "downloadxmin()" $s6 = "startxmin()" $s7 = "setupmyapps()" $s8 = "loadthisfile()" $s9 = "uploadthersa()" $s10 = "getsomelanssh()" $s11 = "localgo()" $c1 = "85.214.149.236" condition: ( filesize < 10KB ) and ( 2 of ($s*) ) and ( 1 of ($c*) ) } ================================================ FILE: rules/malware/watchbogminer.yar ================================================ // WatchBogMiner脚本通配规则 rule linux_miner_watchbogminer_script_gen { meta: description = "watchbogminer shell script general" author = "G4rb3n" reference = "https://s.tencent.com/research/report/1056.html" date = "2020-8-17" strings: $s1 = "pastebin.com" $s2 = "kill_miner_proc()" $s3 = "gettarfile()" $s4 = "base -d" $c1 = "UhUmR517" $c2 = "/JavaUpdates" $c3 = "tmpdropoff" condition: ( filesize < 50KB ) and ( 2 of ($s*) ) and ( 2 of ($c*) ) } ================================================ FILE: rules/utils/wget.yar ================================================ rule wget { meta: author = "yiansec" strings: $url_regex = /wget https?:\/\// wide ascii condition: $url_regex } ================================================ FILE: rules/webshell.yar ================================================ /* yiansec 2020.5.1 */ include "./webshells/WShell_APT_Laudanum.yar" include "./webshells/WShell_ASPXSpy.yar" include "./webshells/WShell_Drupalgeddon2_icos.yar" include "./webshells/WShell_PHP_Anuna.yar" include "./webshells/WShell_PHP_in_images.yar" include "./webshells/WShell_THOR_Webshells.yar" include "./webshells/WShell_Behinder.yar" ================================================ FILE: rules/webshells/WShell_APT_Laudanum.yar ================================================ /* This Yara ruleset is under the GNU-GPLv2 license (http://www.gnu.org/licenses/gpl-2.0.html) and open to any user or organization, as long as you use it under this license. */ rule asp_file : webshell { meta: description = "Laudanum Injector Tools - file file.asp" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "ff5b1a9598735440bdbaa768b524c639e22f53c5" strings: $s1 = "' *** Written by Tim Medin " fullword ascii $s2 = "Response.BinaryWrite(stream.Read)" fullword ascii $s3 = "Response.Write(Response.Status & Request.ServerVariables(\"REMOTE_ADDR\"))" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "%>\">web root
<%" fullword ascii /* PEStudio Blacklist: strings */ $s5 = "set folder = fso.GetFolder(path)" fullword ascii $s6 = "Set file = fso.GetFile(filepath)" fullword ascii condition: uint16(0) == 0x253c and filesize < 30KB and 5 of them } rule php_killnc : webshell { meta: description = "Laudanum Injector Tools - file killnc.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "c0dee56ee68719d5ec39e773621ffe40b144fda5" strings: $s1 = "if ($_SERVER[\"REMOTE_ADDR\"] == $IP)" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "header(\"HTTP/1.0 404 Not Found\");" fullword ascii $s3 = "" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "Laudanum Kill nc" fullword ascii /* PEStudio Blacklist: strings */ $s5 = "foreach ($allowedIPs as $IP) {" fullword ascii condition: filesize < 15KB and 4 of them } rule asp_shell : webshell { meta: description = "Laudanum Injector Tools - file shell.asp" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "8bf1ff6f8edd45e3102be5f8a1fe030752f45613" strings: $s1 = "
" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "%ComSpec% /c dir" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "Set objCmd = wShell.Exec(cmd)" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "Server.ScriptTimeout = 180" fullword ascii /* PEStudio Blacklist: strings */ $s5 = "cmd = Request.Form(\"cmd\")" fullword ascii /* PEStudio Blacklist: strings */ $s6 = "' *** http://laudanum.secureideas.net" fullword ascii $s7 = "Dim wshell, intReturn, strPResult" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 15KB and 4 of them } rule settings : webshell { meta: description = "Laudanum Injector Tools - file settings.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "588739b9e4ef2dbb0b4cf630b73295d8134cc801" strings: $s1 = "Port: " fullword ascii /* PEStudio Blacklist: strings */ $s2 = "
  • Reverse Shell - " fullword ascii /* PEStudio Blacklist: strings */ $s3 = "
  • \">File Browser" ascii /* PEStudio Blacklist: strings */ condition: filesize < 13KB and all of them } rule asp_proxy : webshell { meta: description = "Laudanum Injector Tools - file proxy.asp" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "51e97040d1737618b1775578a772fa6c5a31afd8" strings: $s1 = "'response.write \"
    -value:\" & request.querystring(key)(j)" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "q = q & \"&\" & key & \"=\" & request.querystring(key)(j)" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "for each i in Split(http.getAllResponseHeaders, vbLf)" fullword ascii $s4 = "'urlquery = mid(urltemp, instr(urltemp, \"?\") + 1)" fullword ascii /* PEStudio Blacklist: strings */ $s5 = "s = urlscheme & urlhost & urlport & urlpath" fullword ascii /* PEStudio Blacklist: strings */ $s6 = "Set http = Server.CreateObject(\"Microsoft.XMLHTTP\")" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 50KB and all of them } rule cfm_shell : webshell { meta: description = "Laudanum Injector Tools - file shell.cfm" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "885e1783b07c73e7d47d3283be303c9719419b92" strings: $s1 = "Executable:
    " fullword ascii /* PEStudio Blacklist: strings */ $s2 = "" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "" fullword ascii condition: filesize < 20KB and 2 of them } rule aspx_shell : webshell{ meta: description = "Laudanum Injector Tools - file shell.aspx" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "076aa781a004ecb2bf545357fd36dcbafdd68b1a" strings: $s1 = "remoteIp = HttpContext.Current.Request.Headers[\"X-Forwarded-For\"].Split(new" ascii /* PEStudio Blacklist: strings */ $s2 = "remoteIp = Request.UserHostAddress;" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 20KB and all of them } rule php_shell : webshell{ meta: description = "Laudanum Injector Tools - file shell.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "dc5c03a21267d024ef0f5ab96a34e3f6423dfcd6" strings: $s1 = "command_hist[current_line] = document.shell.command.value;" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "if (e.keyCode == 38 && current_line < command_hist.length-1) {" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "array_unshift($_SESSION['history'], $command);" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "if (preg_match('/^[[:blank:]]*cd[[:blank:]]*$/', $command)) {" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 40KB and all of them } rule php_reverse_shell : webshell { meta: description = "Laudanum Injector Tools - file php-reverse-shell.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "3ef03bbe3649535a03315dcfc1a1208a09cea49d" strings: $s1 = "$process = proc_open($shell, $descriptorspec, $pipes);" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "printit(\"Successfully opened reverse shell to $ip:$port\");" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "$input = fread($pipes[1], $chunk_size);" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 15KB and all of them } rule php_dns : webshell{ meta: description = "Laudanum Injector Tools - file dns.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "01d5d16d876c55d77e094ce2b9c237de43b21a16" strings: $s1 = "$query = isset($_POST['query']) ? $_POST['query'] : '';" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "$result = dns_get_record($query, $types[$type], $authns, $addtl);" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "if ($_SERVER[\"REMOTE_ADDR\"] == $IP)" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "foreach (array_keys($types) as $t) {" fullword ascii condition: filesize < 15KB and all of them } rule WEB_INF_web : webshell{ meta: description = "Laudanum Injector Tools - file web.xml" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "0251baed0a16c451f9d67dddce04a45dc26cb4a3" strings: $s1 = "Command" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "/cmd.jsp" fullword ascii condition: filesize < 1KB and all of them } rule jsp_cmd : webshell { meta: description = "Laudanum Injector Tools - file cmd.war" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "55e4c3dc00cfab7ac16e7cfb53c11b0c01c16d3d" strings: $s0 = "cmd.jsp}" fullword ascii $s1 = "cmd.jspPK" fullword ascii $s2 = "WEB-INF/web.xml" fullword ascii /* Goodware String - occured 1 times */ $s3 = "WEB-INF/web.xmlPK" fullword ascii /* Goodware String - occured 1 times */ $s4 = "META-INF/MANIFEST.MF" fullword ascii /* Goodware String - occured 12 times */ condition: uint16(0) == 0x4b50 and filesize < 2KB and all of them } rule laudanum : webshell { meta: description = "Laudanum Injector Tools - file laudanum.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "fd498c8b195967db01f68776ff5e36a06c9dfbfe" strings: $s1 = "public function __activate()" fullword ascii $s2 = "register_activation_hook(__FILE__, array('WP_Laudanum', 'activate'));" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 5KB and all of them } rule php_file : webshell{ meta: description = "Laudanum Injector Tools - file file.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "7421d33e8007c92c8642a36cba7351c7f95a4335" strings: $s1 = "$allowedIPs =" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "\">Home
    " fullword ascii /* PEStudio Blacklist: strings */ $s3 = "$dir = isset($_GET[\"dir\"]) ? $_GET[\"dir\"] : \".\";" fullword ascii $s4 = "$curdir .= substr($curdir, -1) != \"/\" ? \"/\" : \"\";" fullword ascii condition: filesize < 10KB and all of them } rule warfiles_cmd : webshell { meta: description = "Laudanum Injector Tools - file cmd.jsp" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "3ae3d837e7b362de738cf7fad78eded0dccf601f" strings: $s1 = "Process p = Runtime.getRuntime().exec(request.getParameter(\"cmd\"));" fullword ascii /* PEStudio Blacklist: strings */ $s2 = "out.println(\"Command: \" + request.getParameter(\"cmd\") + \"
    \");" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "" fullword ascii $s4 = "String disr = dis.readLine();" fullword ascii condition: filesize < 2KB and all of them } rule asp_dns : webshell{ meta: description = "Laudanum Injector Tools - file dns.asp" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "5532154dd67800d33dace01103e9b2c4f3d01d51" strings: $s1 = "command = \"nslookup -type=\" & qtype & \" \" & query " fullword ascii /* PEStudio Blacklist: strings */ $s2 = "Set objCmd = objWShell.Exec(command)" fullword ascii /* PEStudio Blacklist: strings */ $s3 = "Response.Write command & \"
    \"" fullword ascii /* PEStudio Blacklist: strings */ $s4 = "" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 21KB and all of them } rule php_reverse_shell_2 : webshell{ meta: description = "Laudanum Injector Tools - file php-reverse-shell.php" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" hash = "025db3c3473413064f0606d93d155c7eb5049c42" strings: $s1 = "$process = proc_open($shell, $descriptorspec, $pipes);" fullword ascii /* PEStudio Blacklist: strings */ $s7 = "$shell = 'uname -a; w; id; /bin/sh -i';" fullword ascii /* PEStudio Blacklist: strings */ condition: filesize < 10KB and all of them } rule Laudanum_Tools_Generic : webshell Toolkit{ meta: description = "Laudanum Injector Tools" author = "Florian Roth" reference = "http://laudanum.inguardians.com/" date = "2015-06-22" super_rule = 1 hash0 = "076aa781a004ecb2bf545357fd36dcbafdd68b1a" hash1 = "885e1783b07c73e7d47d3283be303c9719419b92" hash2 = "01d5d16d876c55d77e094ce2b9c237de43b21a16" hash3 = "7421d33e8007c92c8642a36cba7351c7f95a4335" hash4 = "f49291aef9165ee4904d2d8c3cf5a6515ca0794f" hash5 = "c0dee56ee68719d5ec39e773621ffe40b144fda5" hash6 = "f32b9c2cc3a61fa326e9caebce28ef94a7a00c9a" hash7 = "dc5c03a21267d024ef0f5ab96a34e3f6423dfcd6" hash8 = "fd498c8b195967db01f68776ff5e36a06c9dfbfe" hash9 = "b50ae35fcf767466f6ca25984cc008b7629676b8" hash10 = "5570d10244d90ef53b74e2ac287fc657e38200f0" hash11 = "42bcb491a11b4703c125daf1747cf2a40a1b36f3" hash12 = "83e4eaaa2cf6898d7f83ab80158b64b1d48096f4" hash13 = "dec7ea322898690a7f91db9377f035ad7072b8d7" hash14 = "a2272b8a4221c6cc373915f0cc555fe55d65ac4d" hash15 = "588739b9e4ef2dbb0b4cf630b73295d8134cc801" hash16 = "43320dc23fb2ed26b882512e7c0bfdc64e2c1849" strings: $s1 = "*** laudanum@secureideas.net" fullword ascii $s2 = "*** Laudanum Project" fullword ascii condition: filesize < 60KB and all of them } ================================================ FILE: rules/webshells/WShell_ASPXSpy.yar ================================================ /* This Yara ruleset is under the GNU-GPLv2 license (http://www.gnu.org/licenses/gpl-2.0.html) and open to any user or organization, as long as you use it under this license. */ rule ASPXSpy { meta: description= "Detect ASPXSpy" author = "xylitol@temari.fr" date = "2019-02-26" // May only the challenge guide you strings: $string1 = "CmdShell" wide ascii $string2 = "ADSViewer" wide ascii $string3 = "ASPXSpy.Bin" wide ascii $string4 = "PortScan" wide ascii $plugin = "Test.AspxSpyPlugins" wide ascii condition: 3 of ($string*) or $plugin } ================================================ FILE: rules/webshells/WShell_Behinder.yar ================================================ rule Behinder_aspx { meta: description = "Behinder - file shell.aspx" author = "yarGen Rule Generator" reference = "https://github.com/Neo23x0/yarGen" date = "2021-08-26" hash1 = "224c7f43f72938e44b4f164c1c899c398a9c099a92c6d084856f5e227761e3b0" strings: $x1 = "<%@ Page Language=\"C#\" %><%@Import Namespace=\"System.Reflection\"%><%Session.Add(\"k\",;" ascii $s3 = "ssion[0] + \"\"),c = Request.BinaryRead(Request.ContentLength);Assembly.Load(new System.Security.Cryptography.RijndaelManaged()." ascii $s4 = "eateDecryptor(k, k).TransformFinalBlock(c, 0, c.Length)).CreateInstance(\"U\").Equals(this);%>" fullword ascii condition: uint16(0) == 0x253c and filesize < 1KB and 1 of ($x*) and all of them } rule Behinder_php { meta: description = "Behinder - file shell.php" author = "yarGen Rule Generator" reference = "https://github.com/Neo23x0/yarGen" date = "2021-08-26" hash1 = "3566561d818e868a96f2bc8db9c93663a4fb81c06041259f66d04147d50ce8ab" strings: $s1 = "$post=openssl_decrypt($post, \"AES128\", $key);" fullword ascii $s2 = "$post=file_get_contents(\"php://input\");" fullword ascii $s3 = " $post[$i] = $post[$i]^$key[$i+1&15]; " fullword ascii $s4 = "$_SESSION['k']=$key;" fullword ascii $s5 = "@error_reporting(0);" fullword ascii $s6 = "$post=$t($post.\"\");" fullword ascii $s7 = "for($i=0;$i class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.de" ascii $s5 = "w sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);<%!class U extends ClassLoader{U(ClassLoader c){super(c);}pub" ascii $s2 = "ader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext" ascii $s3 = "<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}pub" ascii $s4 = "c Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals(\"POST\"))" ascii $s5 = "Value(\"u\",k);Cipher c=Cipher.getInstance(\"AES\");c.init(2,new SecretKeySpec(k.getBytes(),\"AES\"));new U(this.getClass().getC" ascii condition: uint16(0) == 0x253c and filesize < 1KB and 1 of ($x*) and all of them } rule shell_java9 { meta: description = "Behinder - file shell_java9.jsp" author = "yarGen Rule Generator" reference = "https://github.com/Neo23x0/yarGen" date = "2021-08-26" hash1 = "cfd86cc11928d594f4ccfb6be371a09383f83bbe82d4d6d86703f5fa6b5233f2" strings: $x1 = "<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}pub" ascii $s2 = "ader()).g(c.doFinal(Base64.getDecoder().decode(request.getReader().readLine()))).newInstance().equals(pageContext);}%>" fullword ascii $s3 = "<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}pub" ascii $s4 = "c Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals(\"POST\")){String k=" ascii $s5 = "Value(\"u\",k);Cipher c=Cipher.getInstance(\"AES\");c.init(2,new SecretKeySpec(k.getBytes(),\"AES\"));new U(this.getClass().getC" ascii condition: uint16(0) == 0x253c and filesize < 1KB and 1 of ($x*) and all of them } ================================================ FILE: rules/webshells/WShell_Drupalgeddon2_icos.yar ================================================ /* This Yara ruleset is under the GNU-GPLv2 license (http://www.gnu.org/licenses/gpl-2.0.html) and open to any user or organization, as long as you use it under this license. */ /* Author: Luis Fueris Date: 4 october, 2019 Description: Drupalgeddon 2 - Web Shells Extract. This rules matchs with webshells that inserts the Drupal core vulnerability SA-CORE-2018-002 (https://www.drupal.org/sa-core-2018-002) */ rule Dotico_PHP_webshell : webshell { meta: description = ".ico PHP webshell - file .ico" author = "Luis Fueris" reference = "https://rankinstudio.com/Drupal_ico_index_hack" date = "2019/12/04" strings: $php = " 70KB and filesize < 110KB } ================================================ FILE: rules/webshells/WShell_PHP_Anuna.yar ================================================ /* I first found this in May 2016, appeared in every PHP file on the server, cleaned it with `sed` and regex magic. Second time was in June 2016, same decoded content, different encoding/naming. https://www.symantec.com/security_response/writeup.jsp?docid=2015-111911-4342-99 */ rule php_anuna { meta: author = "Vlad https://github.com/vlad-s" date = "2016/07/18" description = "Catches a PHP Trojan" strings: $a = /<\?php \$[a-z]+ = '/ $b = /\$[a-z]+=explode\(chr\(\([0-9]+[-+][0-9]+\)\)/ $c = /\$[a-z]+=\([0-9]+[-+][0-9]+\)/ $d = /if \(!function_exists\('[a-z]+'\)\)/ condition: all of them } ================================================ FILE: rules/webshells/WShell_PHP_in_images.yar ================================================ /* Finds PHP code in JP(E)Gs, GIFs, PNGs. Magic numbers via Wikipedia. */ rule php_in_image { meta: author = "Vlad https://github.com/vlad-s" date = "2016/07/18" description = "Finds image files w/ PHP code in images" strings: $gif = /^GIF8[79]a/ $jfif = { ff d8 ff e? 00 10 4a 46 49 46 } $png = { 89 50 4e 47 0d 0a 1a 0a } $php_tag = " 570 and filesize < 800 } rule webshell_h4ntu_shell_powered_by_tsoi_ : webshell { meta: description = "Web Shell - file h4ntu shell [powered by tsoi].php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "06ed0b2398f8096f1bebf092d0526137" strings: $s0 = "
    Server Adress:User Info: ui" $s4 = "
    : \".mysql_error().\"$f_" $s4 = "print \"Current Directory" $s4 = "

    " fullword condition: 2 of them } rule webshell_iMHaPFtp_2 : webshell{ meta: description = "Web Shell - file iMHaPFtp.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "12911b73bc6a5d313b494102abcf5c57" strings: $s8 = "if ($l) echo '
    \"+strCut(convertPath(list[i].getPath()),7" $s3 = " \"reg add \\\"HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Control" condition: all of them } rule webshell_Safe_Mode_Bypass_PHP_4_4_2_and_PHP_5_1_2 : webshell{ meta: description = "Web Shell - file Safe_Mode Bypass PHP 4.4.2 and PHP 5.1.2.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "49ad9117c96419c35987aaa7e2230f63" strings: $s0 = "die(\"\\nWelcome.. By This script you can jump in the (Safe Mode=ON) .. Enjoy\\n" $s1 = "Mode Shell v1.0[\" (left bracket), \"|\" (pi" $s3 = "word: \"null\", \"yes\", \"no\", \"true\"," condition: 1 of them } rule webshell_PHPRemoteView : webshell{ meta: description = "Web Shell - file PHPRemoteView.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "29420106d9a81553ef0d1ca72b9934d9" strings: $s2 = "" fullword $s4 = "String path=new String(request.getParameter(\"path\").getBytes(\"ISO-8859-1\"" condition: all of them } rule webshell_caidao_shell_guo : webshell{ meta: description = "Web Shell - file guo.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "9e69a8f499c660ee0b4796af14dc08f0" strings: $s0 = "
    \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n" condition: 1 of them } rule webshell_asp_cmd : webshell { meta: description = "Web Shell - file cmd.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "895ca846858c315a3ff8daa7c55b3119" strings: $s0 = "<%= \"\\\\\" & oScriptNet.ComputerName & \"\\\" & oScriptNet.UserName %>" fullword $s1 = "Set oFileSys = Server.CreateObject(\"Scripting.FileSystemObject\")" fullword $s3 = "Call oScript.Run (\"cmd.exe /c \" & szCMD & \" > \" & szTempFile, 0, True)" fullword condition: 1 of them } rule webshell_php_sh_server : webshell { meta: description = "Web Shell - file server.php" author = "Florian Roth" date = "2014/01/28" score = 50 hash = "d87b019e74064aa90e2bb143e5e16cfa" strings: $s0 = "eval(getenv('HTTP_CODE'));" fullword condition: all of them } rule webshell_PH_Vayv_PH_Vayv : webshell { meta: description = "Web Shell - file PH Vayv.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "35fb37f3c806718545d97c6559abd262" strings: $s0 = "style=\"BACKGROUND-COLOR: #eae9e9; BORDER-BOTTOM: #000000 1px in" $s4 = "SHOPEN
    " fullword condition: all of them } rule webshell_cihshell_fix : webshell { meta: description = "Web Shell - file cihshell_fix.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "3823ac218032549b86ee7c26f10c4cb5" strings: $s7 = "" fullword $s8 = "" fullword condition: all of them } rule webshell_Private_i3lue : webshell{ meta: description = "Web Shell - file Private-i3lue.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "13f5c7a035ecce5f9f380967cf9d4e92" strings: $s8 = "case 15: $image .= \"\\21\\0\\" condition: all of them } rule webshell_php_up : webshell { meta: description = "Web Shell - file up.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "7edefb8bd0876c41906f4b39b52cd0ef" strings: $s0 = "copy($HTTP_POST_FILES['userfile']['tmp_name'], $_POST['remotefile']);" fullword $s3 = "if(is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {" fullword $s8 = "echo \"Uploaded file: \" . $HTTP_POST_FILES['userfile']['name'];" fullword condition: 2 of them } rule webshell_Mysql_interface_v1_0 { meta: description = "Web Shell - file Mysql interface v1.0.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "a12fc0a3d31e2f89727b9678148cd487" strings: $s0 = "echo \"Go Execute
    All the data in these tables:
    \".$tblsv.\" were putted " condition: all of them } rule webshell_Server_Variables { meta: description = "Web Shell - file Server Variables.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "47fb8a647e441488b30f92b4d39003d7" strings: $s7 = "<% For Each Vars In Request.ServerVariables %>" fullword $s9 = "Variable Name

    " fullword condition: all of them } rule webshell_caidao_shell_ice_2 { meta: description = "Web Shell - file ice.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "1d6335247f58e0a5b03e17977888f5f2" strings: $s0 = "" fullword condition: all of them } rule webshell_caidao_shell_mdb { meta: description = "Web Shell - file mdb.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "fbf3847acef4844f3a0d04230f6b9ff9" strings: $s1 = "<% execute request(\"ice\")%>a " fullword condition: all of them } rule webshell_jsp_guige { meta: description = "Web Shell - file guige.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "2c9f2dafa06332957127e2c713aacdd2" strings: $s0 = "if(damapath!=null &&!damapath.equals(\"\")&&content!=null" condition: all of them } rule webshell_phpspy2010 { meta: description = "Web Shell - file phpspy2010.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "14ae0e4f5349924a5047fed9f3b105c5" strings: $s3 = "eval(gzinflate(base64_decode(" $s5 = "//angel" fullword $s8 = "$admin['cookiedomain'] = '';" fullword condition: all of them } rule webshell_asp_ice { meta: description = "Web Shell - file ice.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "d141e011a92f48da72728c35f1934a2b" strings: $s0 = "D,'PrjknD,J~[,EdnMP[,-4;DS6@#@&VKobx2ldd,'~JhC" condition: all of them } rule webshell_drag_system { meta: description = "Web Shell - file system.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "15ae237cf395fb24cf12bff141fb3f7c" strings: $s9 = "String sql = \"SELECT * FROM DBA_TABLES WHERE TABLE_NAME not like '%$%' and num_" condition: all of them } rule webshell_DarkBlade1_3_asp_indexx { meta: description = "Web Shell - file indexx.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "b7f46693648f534c2ca78e3f21685707" strings: $s3 = "Const strs_toTransform=\"command|Radmin|NTAuThenabled|FilterIp|IISSample|PageCou" condition: all of them } rule webshell_phpshell3 { meta: description = "Web Shell - file phpshell3.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "76117b2ee4a7ac06832d50b2d04070b8" strings: $s2 = "" fullword condition: all of them } rule webshell_asp_404 { meta: description = "Web Shell - file 404.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "d9fa1e8513dbf59fa5d130f389032a2d" strings: $s0 = "lFyw6pd^DKV^4CDRWmmnO1GVKDl:y& f+2" condition: all of them } rule webshell_webshell_cnseay02_1 { meta: description = "Web Shell - file webshell-cnseay02-1.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "95fc76081a42c4f26912826cb1bd24b1" strings: $s0 = "(93).$_uU(41).$_uU(59);$_fF=$_uU(99).$_uU(114).$_uU(101).$_uU(97).$_uU(116).$_uU" condition: all of them } rule webshell_php_fbi { meta: description = "Web Shell - file fbi.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "1fb32f8e58c8deb168c06297a04a21f1" strings: $s7 = "erde types','Getallen','Datum en tijd','Tekst','Binaire gegevens','Netwerk','Geo" condition: all of them } rule webshell_B374kPHP_B374k { meta: description = "Web Shell - file B374k.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "bed7388976f8f1d90422e8795dff1ea6" strings: $s0 = "Http://code.google.com/p/b374k-shell" fullword $s1 = "$_=str_rot13('tm'.'vas'.'yngr');$_=str_rot13(strrev('rqb'.'prq'.'_'.'46r'.'fno'" $s3 = "Jayalah Indonesiaku & Lyke @ 2013" fullword $s4 = "B374k Vip In Beautify Just For Self" fullword condition: 1 of them } rule webshell_cmd_asp_5_1 { meta: description = "Web Shell - file cmd-asp-5.1.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "8baa99666bf3734cbdfdd10088e0cd9f" strings: $s9 = "Call oS.Run(\"win.com cmd.exe /c \"\"\" & szCMD & \" > \" & szTF &" fullword condition: all of them } rule webshell_php_dodo_zip { meta: description = "Web Shell - file zip.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "b7800364374077ce8864796240162ad5" strings: $s0 = "$hexdtime = '\\x' . $dtime[6] . $dtime[7] . '\\x' . $dtime[4] . $dtime[5] . '\\x" $s3 = "$datastr = \"\\x50\\x4b\\x03\\x04\\x0a\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00" condition: all of them } rule webshell_aZRaiLPhp_v1_0 { meta: description = "Web Shell - file aZRaiLPhp v1.0.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "26b2d3943395682e36da06ed493a3715" strings: $s5 = "echo \" CHMODU \".substr(base_convert(@fileperms($" $s7 = "echo \"\" . $filena" $s9 = "// by: The Dark Raver" fullword condition: 1 of them } rule webshell_ironshell { meta: description = "Web Shell - file ironshell.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "8bfa2eeb8a3ff6afc619258e39fded56" strings: $s4 = "print \"<%@page import=\"java.net.*\"%><%String t=request." condition: all of them } rule webshell_mysqlwebsh { meta: description = "Web Shell - file mysqlwebsh.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "babfa76d11943a22484b3837f105fada" strings: $s3 = " \" title=\"<%=SubFolder.Name%>\"> ??????????????????: " fullword condition: all of them } rule webshell_asp_1 { meta: description = "Web Shell - file 1.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "8991148adf5de3b8322ec5d78cb01bdb" strings: $s4 = "!22222222222222222222222222222222222222222222222222" fullword $s8 = "<%eval request(\"pass\")%>" fullword condition: all of them } rule webshell_ASP_tool { meta: description = "Web Shell - file tool.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "4ab68d38527d5834e9c1ff64407b34fb" strings: $s0 = "Response.Write \"<DIR> " fullword condition: 2 of them } rule webshell_jsp_jshell { meta: description = "Web Shell - file jshell.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "124b22f38aaaf064cef14711b2602c06" strings: $s0 = "kXpeW[\"" fullword $s4 = "[7b:g0W@W<" fullword $s5 = "b:gHr,g<" fullword $s8 = "RhV0W@W<" fullword $s9 = "S_MR(u7b" fullword condition: all of them } rule webshell_ASP_zehir4 { meta: description = "Web Shell - file zehir4.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "7f4e12e159360743ec016273c3b9108c" strings: $s9 = "Response.Write \"" fullword condition: all of them } rule webshell_PHP_Shell_x3 { meta: description = "Web Shell - file PHP Shell.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "a2f8fa4cce578fc9c06f8e674b9e63fd" strings: $s4 = "  [" $s6 = "echo \"
    \");" fullword condition: all of them } rule webshell_jsp_k81 { meta: description = "Web Shell - file k81.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "41efc5c71b6885add9c1d516371bd6af" strings: $s1 = "byte[] binary = BASE64Decoder.class.newInstance().decodeBuffer(cmd);" fullword $s9 = "if(cmd.equals(\"Szh0ZWFt\")){out.print(\"[S]\"+dir+\"[E]\");}" fullword condition: 1 of them } rule webshell_ASP_zehir { meta: description = "Web Shell - file zehir.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "0061d800aee63ccaf41d2d62ec15985d" strings: $s9 = "Response.Write \"
    " condition: all of them } rule webshell_Liz0ziM_Private_Safe_Mode_Command_Execuriton_Bypass_Exploit { meta: description = "Web Shell - file Liz0ziM Private Safe Mode Command Execuriton Bypass Exploit.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "c6eeacbe779518ea78b8f7ed5f63fc11" strings: $s1 = "" fullword condition: all of them } rule webshell_redirect { meta: description = "Web Shell - file redirect.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "97da83c6e3efbba98df270cc70beb8f8" strings: $s7 = "var flag = \"?txt=\" + (document.getElementById(\"dl\").checked ? \"2\":\"1\" " condition: all of them } rule webshell_jsp_cmdjsp { meta: description = "Web Shell - file cmdjsp.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "b815611cc39f17f05a73444d699341d4" strings: $s5 = "" fullword condition: all of them } rule webshell_Java_Shell { meta: description = "Web Shell - file Java Shell.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "36403bc776eb12e8b7cc0eb47c8aac83" strings: $s4 = "public JythonShell(int columns, int rows, int scrollback) {" fullword $s9 = "this(null, Py.getSystemState(), columns, rows, scrollback);" fullword condition: 1 of them } rule webshell_asp_1d { meta: description = "Web Shell - file 1d.asp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "fad7504ca8a55d4453e552621f81563c" strings: $s0 = "+9JkskOfKhUxZJPL~\\(mD^W~[,{@#@&EO" condition: all of them } rule webshell_jsp_IXRbE { meta: description = "Web Shell - file IXRbE.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "e26e7e0ebc6e7662e1123452a939e2cd" strings: $s0 = "<%if(request.getParameter(\"f\")!=null)(new java.io.FileOutputStream(application" condition: all of them } rule webshell_PHP_G5 { meta: description = "Web Shell - file G5.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "95b4a56140a650c74ed2ec36f08d757f" strings: $s3 = "echo \"Hacking Mode?
     Server's PHP Version:&n" $s4 = "  [" $s7 = "echo \"" $s3 = "" fullword $s2 = "out.print(\")
    Filenam" $s8 = "print \"File: Tools\">" fullword $s4 = "Response.Write(\"

    FILE: \" & file & \"

    \")" fullword condition: all of them } rule webshell_PHP_co { meta: description = "Web Shell - file co.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "62199f5ac721a0cb9b28f465a513874c" strings: $s0 = "cGX6R9q733WvRRjISKHOp9neT7wa6ZAD8uthmVJV" fullword $s11 = "6Mk36lz/HOkFfoXX87MpPhZzBQH6OaYukNg1OE1j" fullword condition: all of them } rule webshell_PHP_150 { meta: description = "Web Shell - file 150.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "400c4b0bed5c90f048398e1d268ce4dc" strings: $s0 = "HJ3HjqxclkZfp" $s1 = "" fullword condition: all of them } rule webshell_PHP_c37 { meta: description = "Web Shell - file c37.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "d01144c04e7a46870a8dd823eb2fe5c8" strings: $s3 = "array('cpp','cxx','hxx','hpp','cc','jxx','c++','vcproj')," $s9 = "++$F; $File = urlencode($dir[$dirFILE]); $eXT = '.:'; if (strpos($dir[$dirFILE]," condition: all of them } rule webshell_PHP_b37 { meta: description = "Web Shell - file b37.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "0421445303cfd0ec6bc20b3846e30ff0" strings: $s0 = "xmg2/G4MZ7KpNveRaLgOJvBcqa2A8/sKWp9W93NLXpTTUgRc" condition: all of them } rule webshell_php_backdoor { meta: description = "Web Shell - file php-backdoor.php" author = "Florian Roth" date = "2014/01/28" score = 70 hash = "2b5cb105c4ea9b5ebc64705b4bd86bf7" strings: $s1 = "if(!move_uploaded_file($HTTP_POST_FILES['file_name']['tmp_name'], $dir.$fname))" fullword $s2 = "
    \" METHOD=GET >execute command:  " fullword
    	condition:
    		all of them
    }
    rule webshell_asp_cmdasp {
    	meta:
    		description = "Web Shell - file cmdasp.asp"
    		author = "Florian Roth"
    		date = "2014/01/28"
    		score = 70
    		hash = "57b51418a799d2d016be546f399c2e9b"
    	strings:
    		$s0 = "<%= \"\\\\\" & oScriptNet.ComputerName & \"\\\" & oScriptNet.UserName %>" fullword
    		$s7 = "Call oScript.Run (\"cmd.exe /c \" & szCMD & \" > \" & szTempFile, 0, True)" fullword
    	condition:
    		all of them
    }
    rule webshell_spjspshell {
    	meta:
    		description = "Web Shell - file spjspshell.jsp"
    		author = "Florian Roth"
    		date = "2014/01/28"
    		score = 70
    		hash = "d39d51154aaad4ba89947c459a729971"
    	strings:
    		$s7 = "Unix:/bin/sh -c tar vxf xxx.tar Windows:c:\\winnt\\system32\\cmd.exe /c type c:"
    	condition:
    		all of them
    }
    rule webshell_jsp_action {
    	meta:
    		description = "Web Shell - file action.jsp"
    		author = "Florian Roth"
    		date = "2014/01/28"
    		score = 70
    		hash = "5a7d931094f5570aaf5b7b3b06c3d8c0"
    	strings:
    		$s1 = "String url=\"jdbc:oracle:thin:@localhost:1521:orcl\";" fullword
    		$s6 = "<%@ page contentType=\"text/html;charset=gb2312\"%>" fullword
    	condition:
    		all of them
    }
    rule webshell_Inderxer {
    	meta:
    		description = "Web Shell - file Inderxer.asp"
    		author = "Florian Roth"
    		date = "2014/01/28"
    		score = 70
    		hash = "9ea82afb8c7070817d4cdf686abe0300"
    	strings:
    		$s4 = "Nereye :   " fullword
    		$s9 = "String path=new String(request.getParameter(\"path\").getBytes(\"ISO-8859"
    	condition:
    		all of them
    }
    rule webshell_ELMALISEKER_Backd00r {
    	meta:
    		description = "Web Shell - file ELMALISEKER Backd00r.asp"
    		author = "Florian Roth"
    		date = "2014/01/28"
    		score = 70
    		hash = "3aa403e0a42badb2c23d4a54ef43e2f4"
    	strings:
    		$s0 = "response.write(\"" fullword
    		$s6 = "\" name=\"url"
    	condition:
    		all of them
    }
    rule webshell_jsp_inback3 {
    	meta:
    		description = "Web Shell - file inback3.jsp"
    		author = "Florian Roth"
    		date = "2014/01/28"
    		score = 70
    		hash = "ea5612492780a26b8aa7e5cedd9b8f4e"
    	strings:
    		$s0 = "<%if(request.getParameter(\"f\")!=null)(new java.io.FileOutputStream(application"
    	condition:
    		all of them
    }
    rule webshell_metaslsoft {
    	meta:
    		description = "Web Shell - file metaslsoft.php"
    		author = "Florian Roth"
    		date = "2014/01/28"
    		score = 70
    		hash = "aa328ed1476f4a10c0bcc2dde4461789"
    	strings:
    		$s7 = "$buff .= \"[ $folder ]LINKOperating System : \".php_uname().\" \",in('text','mk_name"
    		$s3 = "echo sr(15,\"\".$lang[$language.'_text21'].$arrow.\"\",in('checkbox','nf1"
    		$s9 = "echo sr(40,\"\".$lang[$language.'_text26'].$arrow.\"\",\"Current File (import new file name and new file)
    Current file (fullpath)
      \".$pathname." condition: all of them } rule webshell_c99_Shell_ci_Biz_was_here_c100_v_xxx { meta: description = "Web Shell - from files c99.php, Shell [ci] .Biz was here.php, c100 v. 777shell v. Undetectable #18a Modded by 777 - Don.php, c66.php, c99-shadows-mod.php, c99shell.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "61a92ce63369e2fa4919ef0ff7c51167" hash1 = "f2fa878de03732fbf5c86d656467ff50" hash2 = "27786d1e0b1046a1a7f67ee41c64bf4c" hash3 = "0f5b9238d281bc6ac13406bb24ac2a5b" hash4 = "68c0629d08b1664f5bcce7d7f5f71d22" hash5 = "048ccc01b873b40d57ce25a4c56ea717" strings: $s8 = "else {echo \"Running datapipe... ok! Connect to \".getenv(\"SERVER_ADDR\"" condition: all of them } rule webshell_2008_2009lite_2009mssql { meta: description = "Web Shell - from files 2008.php, 2009lite.php, 2009mssql.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "3e4ba470d4c38765e4b16ed930facf2c" hash1 = "3f4d454d27ecc0013e783ed921eeecde" hash2 = "aa17b71bb93c6789911bd1c9df834ff9" strings: $s0 = "
    Path.'/\\');" $s7 = "p('

    File Manager - Current disk free '.sizecount($free).' of '.sizecount($all" condition: all of them } rule webshell_shell_phpspy_2005_full_phpspy_2005_lite_phpspy_2006_arabicspy_PHPSPY_hkrkoz { meta: description = "Web Shell - from files shell.php, phpspy_2005_full.php, phpspy_2005_lite.php, phpspy_2006.php, arabicspy.php, PHPSPY.php, hkrkoz.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "791708057d8b429d91357d38edf43cc0" hash1 = "b68bfafc6059fd26732fa07fb6f7f640" hash2 = "42f211cec8032eb0881e87ebdb3d7224" hash3 = "40a1f840111996ff7200d18968e42cfe" hash4 = "e0202adff532b28ef1ba206cf95962f2" hash5 = "0712e3dc262b4e1f98ed25760b206836" hash6 = "802f5cae46d394b297482fd0c27cb2fc" strings: $s0 = "$mainpath_info = explode('/', $mainpath);" fullword $s6 = "if (!isset($_GET['action']) OR empty($_GET['action']) OR ($_GET['action'] == \"d" condition: all of them } rule webshell_807_dm_JspSpyJDK5_m_cofigrue { meta: description = "Web Shell - from files 807.jsp, dm.jsp, JspSpyJDK5.jsp, m.jsp, cofigrue.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "ae76c77fb7a234380cd0ebb6fe1bcddf" hash1 = "14e9688c86b454ed48171a9d4f48ace8" hash2 = "341298482cf90febebb8616426080d1d" hash3 = "88fc87e7c58249a398efd5ceae636073" hash4 = "349ec229e3f8eda0f9eb918c74a8bf4c" strings: $s1 = "url_con.setRequestProperty(\"REFERER\", \"\"+fckal+\"\");" fullword $s9 = "FileLocalUpload(uc(dx())+sxm,request.getRequestURL().toString(), \"GBK\");" fullword condition: 1 of them } rule webshell_Dive_Shell_1_0_Emperor_Hacking_Team_xxx { meta: description = "Web Shell - from files Dive Shell 1.0 - Emperor Hacking Team.php, phpshell.php, SimShell 1.0 - Simorgh Security MGZ.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "1b5102bdc41a7bc439eea8f0010310a5" hash1 = "f8a6d5306fb37414c5c772315a27832f" hash2 = "37cb1db26b1b0161a4bf678a6b4565bd" strings: $s1 = "if (($i = array_search($_REQUEST['command'], $_SESSION['history'])) !== fals" $s9 = "if (ereg('^[[:blank:]]*cd[[:blank:]]*$', $_REQUEST['command'])) {" fullword condition: all of them } rule webshell_404_data_in_JFolder_jfolder01_xxx { meta: description = "Web Shell - from files 404.jsp, data.jsp, in.jsp, JFolder.jsp, jfolder01.jsp, jsp.jsp, leo.jsp, suiyue.jsp, warn.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "7066f4469c3ec20f4890535b5f299122" hash1 = "9f54aa7b43797be9bab7d094f238b4ff" hash2 = "793b3d0a740dbf355df3e6f68b8217a4" hash3 = "8979594423b68489024447474d113894" hash4 = "ec482fc969d182e5440521c913bab9bd" hash5 = "f98d2b33cd777e160d1489afed96de39" hash6 = "4b4c12b3002fad88ca6346a873855209" hash7 = "c93d5bdf5cf62fe22e299d0f2b865ea7" hash8 = "e9a5280f77537e23da2545306f6a19ad" strings: $s4 = " " condition: 2 of them } rule webshell_2008_2009mssql_phpspy_2005_full_phpspy_2006_arabicspy_hkrkoz { meta: description = "Web Shell - from files 2008.php, 2009mssql.php, phpspy_2005_full.php, phpspy_2006.php, arabicspy.php, hkrkoz.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "3e4ba470d4c38765e4b16ed930facf2c" hash1 = "aa17b71bb93c6789911bd1c9df834ff9" hash2 = "b68bfafc6059fd26732fa07fb6f7f640" hash3 = "40a1f840111996ff7200d18968e42cfe" hash4 = "e0202adff532b28ef1ba206cf95962f2" hash5 = "802f5cae46d394b297482fd0c27cb2fc" strings: $s0 = "$this -> addFile($content, $filename);" fullword $s3 = "function addFile($data, $name, $time = 0) {" fullword $s8 = "function unix2DosTime($unixtime = 0) {" fullword $s9 = "foreach($filelist as $filename){" fullword condition: all of them } rule webshell_c99_c66_c99_shadows_mod_c99shell { meta: description = "Web Shell - from files c99.php, c66.php, c99-shadows-mod.php, c99shell.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "61a92ce63369e2fa4919ef0ff7c51167" hash1 = "0f5b9238d281bc6ac13406bb24ac2a5b" hash2 = "68c0629d08b1664f5bcce7d7f5f71d22" hash3 = "048ccc01b873b40d57ce25a4c56ea717" strings: $s2 = " if (unlink(_FILE_)) {@ob_clean(); echo \"Thanks for using c99shell v.\".$shv" $s3 = " \"c99sh_backconn.pl\"=>array(\"Using PERL\",\"perl %path %host %port\")," fullword $s4 = "
    array(\"Using PERL\",\"perl %path %localport %remotehos" $s9 = " elseif (!$data = c99getsource($bc[\"src\"])) {echo \"Can't download sources!" condition: 2 of them } rule webshell_he1p_JspSpy_nogfw_ok_style_1_JspSpy1 { meta: description = "Web Shell - from files he1p.jsp, JspSpy.jsp, nogfw.jsp, ok.jsp, style.jsp, 1.jsp, JspSpy.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "b330a6c2d49124ef0729539761d6ef0b" hash1 = "d71716df5042880ef84427acee8b121e" hash2 = "344f9073576a066142b2023629539ebd" hash3 = "32dea47d9c13f9000c4c807561341bee" hash4 = "b9744f6876919c46a29ea05b1d95b1c3" hash5 = "3ea688e3439a1f56b16694667938316d" hash6 = "2434a7a07cb47ce25b41d30bc291cacc" strings: $s0 = "\"\"+f.canRead()+\" / \"+f.canWrite()+\" / \"+f.canExecute()+\"\"+" fullword $s4 = "out.println(\"

    File Manager - Current disk "\"+(cr.indexOf(\"/\") == 0?" $s7 = "String execute = f.canExecute() ? \"checked=\\\"checked\\\"\" : \"\";" fullword $s8 = "\"

    " condition: 2 of them } rule webshell_000_403_c5_config_myxx_queryDong_spyjsp2010_zend { meta: description = "Web Shell - from files 000.jsp, 403.jsp, c5.jsp, config.jsp, myxx.jsp, queryDong.jsp, spyjsp2010.jsp, zend.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "2eeb8bf151221373ee3fd89d58ed4d38" hash1 = "059058a27a7b0059e2c2f007ad4675ef" hash2 = "8b457934da3821ba58b06a113e0d53d9" hash3 = "d44df8b1543b837e57cc8f25a0a68d92" hash4 = "e0354099bee243702eb11df8d0e046df" hash5 = "90a5ba0c94199269ba33a58bc6a4ad99" hash6 = "655722eaa6c646437c8ae93daac46ae0" hash7 = "591ca89a25f06cf01e4345f98a22845c" strings: $s0 = "return new Double(format.format(value)).doubleValue();" fullword $s5 = "File tempF = new File(savePath);" fullword $s9 = "if (tempF.isDirectory()) {" fullword condition: 2 of them } rule webshell_c99_c99shell_c99_c99shell { meta: description = "Web Shell - from files c99.php, c99shell.php, c99.php, c99shell.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "61a92ce63369e2fa4919ef0ff7c51167" hash1 = "d3f38a6dc54a73d304932d9227a739ec" hash2 = "157b4ac3c7ba3a36e546e81e9279eab5" hash3 = "048ccc01b873b40d57ce25a4c56ea717" strings: $s2 = "$bindport_pass = \"c99\";" fullword $s5 = " else {echo \"Execution PHP-code\"; if (empty($eval_txt)) {$eval_txt = tr" condition: 1 of them } rule webshell_r57shell127_r57_iFX_r57_kartal_r57_antichat { meta: description = "Web Shell - from files r57shell127.php, r57_iFX.php, r57_kartal.php, r57.php, antichat.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "ae025c886fbe7f9ed159f49593674832" hash1 = "513b7be8bd0595c377283a7c87b44b2e" hash2 = "1d912c55b96e2efe8ca873d6040e3b30" hash3 = "4108f28a9792b50d95f95b9e5314fa1e" hash4 = "3f71175985848ee46cc13282fbed2269" strings: $s6 = "$res = @mysql_query(\"SHOW CREATE TABLE `\".$_POST['mysql_tbl'].\"`\", $d" $s7 = "$sql1 .= $row[1].\"\\r\\n\\r\\n\";" fullword $s8 = "if(!empty($_POST['dif'])&&$fp) { @fputs($fp,$sql1.$sql2); }" fullword $s9 = "foreach($values as $k=>$v) {$values[$k] = addslashes($v);}" fullword condition: 2 of them } rule webshell_NIX_REMOTE_WEB_SHELL_nstview_xxx { meta: description = "Web Shell - from files NIX REMOTE WEB-SHELL.php, nstview.php, NIX REMOTE WEB-SHELL v.0.5 alpha Lite Public Version.php, Cyber Shell (v 1.0).php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "0b19e9de790cd2f4325f8c24b22af540" hash1 = "4745d510fed4378e4b1730f56f25e569" hash2 = "f3ca29b7999643507081caab926e2e74" hash3 = "46a18979750fa458a04343cf58faa9bd" strings: $s3 = "BODY, TD, TR {" fullword $s5 = "$d=str_replace(\"\\\\\",\"/\",$d);" fullword $s6 = "if ($file==\".\" || $file==\"..\") continue;" fullword condition: 2 of them } rule webshell_000_403_807_a_c5_config_css_dm_he1p_xxx { meta: description = "Web Shell - from files 000.jsp, 403.jsp, 807.jsp, a.jsp, c5.jsp, config.jsp, css.jsp, dm.jsp, he1p.jsp, JspSpy.jsp, JspSpyJDK5.jsp, JspSpyJDK51.jsp, luci.jsp.spy2009.jsp, m.jsp, ma3.jsp, mmym520.jsp, myxx.jsp, nogfw.jsp, ok.jsp, queryDong.jsp, spyjsp2010.jsp, style.jsp, u.jsp, xia.jsp, zend.jsp, cofigrue.jsp, 1.jsp, jspspy.jsp, jspspy_k8.jsp, JspSpy.jsp, JspSpyJDK5.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "2eeb8bf151221373ee3fd89d58ed4d38" hash1 = "059058a27a7b0059e2c2f007ad4675ef" hash2 = "ae76c77fb7a234380cd0ebb6fe1bcddf" hash3 = "76037ebd781ad0eac363d56fc81f4b4f" hash4 = "8b457934da3821ba58b06a113e0d53d9" hash5 = "d44df8b1543b837e57cc8f25a0a68d92" hash6 = "fc44f6b4387a2cb50e1a63c66a8cb81c" hash7 = "14e9688c86b454ed48171a9d4f48ace8" hash8 = "b330a6c2d49124ef0729539761d6ef0b" hash9 = "d71716df5042880ef84427acee8b121e" hash10 = "341298482cf90febebb8616426080d1d" hash11 = "29aebe333d6332f0ebc2258def94d57e" hash12 = "42654af68e5d4ea217e6ece5389eb302" hash13 = "88fc87e7c58249a398efd5ceae636073" hash14 = "4a812678308475c64132a9b56254edbc" hash15 = "9626eef1a8b9b8d773a3b2af09306a10" hash16 = "e0354099bee243702eb11df8d0e046df" hash17 = "344f9073576a066142b2023629539ebd" hash18 = "32dea47d9c13f9000c4c807561341bee" hash19 = "90a5ba0c94199269ba33a58bc6a4ad99" hash20 = "655722eaa6c646437c8ae93daac46ae0" hash21 = "b9744f6876919c46a29ea05b1d95b1c3" hash22 = "6acc82544be056580c3a1caaa4999956" hash23 = "6aa32a6392840e161a018f3907a86968" hash24 = "591ca89a25f06cf01e4345f98a22845c" hash25 = "349ec229e3f8eda0f9eb918c74a8bf4c" hash26 = "3ea688e3439a1f56b16694667938316d" hash27 = "ab77e4d1006259d7cbc15884416ca88c" hash28 = "71097537a91fac6b01f46f66ee2d7749" hash29 = "2434a7a07cb47ce25b41d30bc291cacc" hash30 = "7a4b090619ecce6f7bd838fe5c58554b" strings: $s3 = "String savePath = request.getParameter(\"savepath\");" fullword $s4 = "URL downUrl = new URL(downFileUrl);" fullword $s5 = "if (Util.isEmpty(downFileUrl) || Util.isEmpty(savePath))" fullword $s6 = "String downFileUrl = request.getParameter(\"url\");" fullword $s7 = "FileInputStream fInput = new FileInputStream(f);" fullword $s8 = "URLConnection conn = downUrl.openConnection();" fullword $s9 = "sis = request.getInputStream();" fullword condition: 4 of them } rule webshell_2_520_icesword_job_ma1 { meta: description = "Web Shell - from files 2.jsp, 520.jsp, icesword.jsp, job.jsp, ma1.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "64a3bf9142b045b9062b204db39d4d57" hash1 = "9abd397c6498c41967b4dd327cf8b55a" hash2 = "077f4b1b6d705d223b6d644a4f3eebae" hash3 = "56c005690da2558690c4aa305a31ad37" hash4 = "532b93e02cddfbb548ce5938fe2f5559" strings: $s1 = "" fullword $s3 = "" fullword $s8 = "" fullword condition: 2 of them } rule webshell_404_data_in_JFolder_jfolder01_jsp_suiyue_warn { meta: description = "Web Shell - from files 404.jsp, data.jsp, in.jsp, JFolder.jsp, jfolder01.jsp, jsp.jsp, suiyue.jsp, warn.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "7066f4469c3ec20f4890535b5f299122" hash1 = "9f54aa7b43797be9bab7d094f238b4ff" hash2 = "793b3d0a740dbf355df3e6f68b8217a4" hash3 = "8979594423b68489024447474d113894" hash4 = "ec482fc969d182e5440521c913bab9bd" hash5 = "f98d2b33cd777e160d1489afed96de39" hash6 = "c93d5bdf5cf62fe22e299d0f2b865ea7" hash7 = "e9a5280f77537e23da2545306f6a19ad" strings: $s0 = "
    \"+f.canRead()+\" / \"+f.canWrite()+\" / \"+f.canExecute()+\"
    " fullword condition: all of them } rule webshell_phpspy_2005_full_phpspy_2005_lite_phpspy_2006_PHPSPY { meta: description = "Web Shell - from files phpspy_2005_full.php, phpspy_2005_lite.php, phpspy_2006.php, PHPSPY.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "b68bfafc6059fd26732fa07fb6f7f640" hash1 = "42f211cec8032eb0881e87ebdb3d7224" hash2 = "40a1f840111996ff7200d18968e42cfe" hash3 = "0712e3dc262b4e1f98ed25760b206836" strings: $s4 = "http://www.4ngel.net" fullword $s5 = " | PHP" fullword $s8 = "echo $msg=@fwrite($fp,$_POST['filecontent']) ? \"" fullword $s9 = "Codz by Angel" fullword condition: 2 of them } rule webshell_c99_locus7s_c99_w4cking_xxx { meta: description = "Web Shell - from files c99_locus7s.php, c99_w4cking.php, r57shell.php, r57shell127.php, SnIpEr_SA Shell.php, EgY_SpIdEr ShElL V2.php, r57_iFX.php, r57_kartal.php, r57_Mohajer22.php, r57.php, acid.php, newsh.php, r57.php, Backdoor.PHP.Agent.php" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "38fd7e45f9c11a37463c3ded1c76af4c" hash1 = "9c34adbc8fd8d908cbb341734830f971" hash2 = "ef43fef943e9df90ddb6257950b3538f" hash3 = "ae025c886fbe7f9ed159f49593674832" hash4 = "911195a9b7c010f61b66439d9048f400" hash5 = "697dae78c040150daff7db751fc0c03c" hash6 = "513b7be8bd0595c377283a7c87b44b2e" hash7 = "1d912c55b96e2efe8ca873d6040e3b30" hash8 = "e5b2131dd1db0dbdb43b53c5ce99016a" hash9 = "4108f28a9792b50d95f95b9e5314fa1e" hash10 = "b8f261a3cdf23398d573aaf55eaf63b5" hash11 = "0d2c2c151ed839e6bafc7aa9c69be715" hash12 = "41af6fd253648885c7ad2ed524e0692d" hash13 = "6fcc283470465eed4870bcc3e2d7f14d" strings: $s1 = "$res = @shell_exec($cfe);" fullword $s8 = "$res = @ob_get_contents();" fullword $s9 = "@exec($cfe,$res);" fullword condition: 2 of them } rule webshell_browser_201_3_ma_ma2_download { meta: description = "Web Shell - from files browser.jsp, 201.jsp, 3.jsp, ma.jsp, ma2.jsp, download.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "37603e44ee6dc1c359feb68a0d566f76" hash1 = "a7e25b8ac605753ed0c438db93f6c498" hash2 = "fb8c6c3a69b93e5e7193036fd31a958d" hash3 = "4cc68fa572e88b669bce606c7ace0ae9" hash4 = "4b45715fa3fa5473640e17f49ef5513d" hash5 = "fa87bbd7201021c1aefee6fcc5b8e25a" strings: $s1 = "private static final int EDITFIELD_ROWS = 30;" fullword $s2 = "private static String tempdir = \".\";" fullword $s6 = "\"" condition: 2 of them } rule webshell_000_403_c5_queryDong_spyjsp2010 { meta: description = "Web Shell - from files 000.jsp, 403.jsp, c5.jsp, queryDong.jsp, spyjsp2010.jsp" author = "Florian Roth" date = "2014/01/28" score = 70 super_rule = 1 hash0 = "2eeb8bf151221373ee3fd89d58ed4d38" hash1 = "059058a27a7b0059e2c2f007ad4675ef" hash2 = "8b457934da3821ba58b06a113e0d53d9" hash3 = "90a5ba0c94199269ba33a58bc6a4ad99" hash4 = "655722eaa6c646437c8ae93daac46ae0" strings: $s2 = "\" www.Expdoor.com" fullword $s5 = " second(s) {gzip} usage:" $s17 = "<%if(request.getParameter(\"f\")" condition: all of them } rule webshell_webshells_new_xxxx { meta: description = "Web shells - generated from file xxxx.php" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "5bcba70b2137375225d8eedcde2c0ebb" strings: $s0 = " " fullword condition: all of them } rule webshell_webshells_new_JJjsp3 { meta: description = "Web shells - generated from file JJjsp3.jsp" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "949ffee1e07a1269df7c69b9722d293e" strings: $s0 = "<%@page import=\"java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*\"%><%!S" condition: all of them } rule webshell_webshells_new_PHP1 { meta: description = "Web shells - generated from file PHP1.php" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "14c7281fdaf2ae004ca5fec8753ce3cb" strings: $s0 = "<[url=mailto:?@array_map($_GET[]?@array_map($_GET['f'],$_GET[/url]);?>" fullword $s2 = ":https://forum.90sec.org/forum.php?mod=viewthread&tid=7316" fullword $s3 = "@preg_replace(\"/f/e\",$_GET['u'],\"fengjiao\"); " fullword condition: 1 of them } rule webshell_webshells_new_JJJsp2 { meta: description = "Web shells - generated from file JJJsp2.jsp" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "5a9fec45236768069c99f0bfd566d754" strings: $s2 = "QQ(cs, z1, z2, sb,z2.indexOf(\"-to:\")!=-1?z2.substring(z2.indexOf(\"-to:\")+4,z" $s8 = "sb.append(l[i].getName() + \"/\\t\" + sT + \"\\t\" + l[i].length()+ \"\\t\" + sQ" $s10 = "ResultSet r = s.indexOf(\"jdbc:oracle\")!=-1?c.getMetaData()" $s11 = "return DriverManager.getConnection(x[1].trim()+\":\"+x[4],x[2].equalsIgnoreCase(" condition: 1 of them } rule webshell_webshells_new_radhat { meta: description = "Web shells - generated from file radhat.asp" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "72cb5ef226834ed791144abaa0acdfd4" strings: $s1 = "sod=Array(\"D\",\"7\",\"S" condition: all of them } rule webshell_webshells_new_asp1 { meta: description = "Web shells - generated from file asp1.asp" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "b63e708cd58ae1ec85cf784060b69cad" strings: $s0 = " http://www.baidu.com/fuck.asp?a=)0(tseuqer%20lave " fullword $s2 = " <% a=request(chr(97)) ExecuteGlobal(StrReverse(a)) %>" fullword condition: 1 of them } rule webshell_webshells_new_php6 { meta: description = "Web shells - generated from file php6.php" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "ea75280224a735f1e445d244acdfeb7b" strings: $s1 = "array_map(\"asx73ert\",(ar" $s3 = "preg_replace(\"/[errorpage]/e\",$page,\"saft\");" fullword $s4 = "shell.php?qid=zxexp " fullword condition: 1 of them } rule webshell_webshells_new_xxx { meta: description = "Web shells - generated from file xxx.php" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "0e71428fe68b39b70adb6aeedf260ca0" strings: $s3 = "" fullword condition: all of them } rule webshell_GetPostpHp { meta: description = "Web shells - generated from file GetPostpHp.php" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "20ede5b8182d952728d594e6f2bb5c76" strings: $s0 = "" fullword condition: all of them } rule webshell_webshells_new_php5 { meta: description = "Web shells - generated from file php5.php" author = "Florian Roth" date = "2014/03/28" score = 70 hash = "cf2ab009cbd2576a806bfefb74906fdf" strings: $s0 = "Error!\";" fullword $s2 = "DBHACKLERIN&klas=<%=aktifklas%>" $s3 = "www.aventgrup.net" $s4 = "style=\"BACKGROUND-COLOR: #95B4CC; BORDER-BOTTOM: #000000 1px inset; BORDER-LEFT" condition: 1 of them } rule r57shell_php_php { meta: description = "Semi-Auto-generated - file r57shell.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "d28445de424594a5f14d0fe2a7c4e94f" strings: $s0 = "r57shell" fullword $s1 = " else if ($HTTP_POST_VARS['with'] == \"lynx\") { $HTTP_POST_VARS['cmd']= \"lynx " $s2 = "RusH security team" $s3 = "'ru_text12' => 'back-connect" condition: 1 of them } rule rst_sql_php_php { meta: description = "Semi-Auto-generated - file rst_sql.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "0961641a4ab2b8cb4d2beca593a92010" strings: $s0 = "C:\\tmp\\dump_" $s1 = "RST MySQL" $s2 = "http://rst.void.ru" $s3 = "$st_form_bg='R0lGODlhCQAJAIAAAOfo6u7w8yH5BAAAAAAALAAAAAAJAAkAAAIPjAOnuJfNHJh0qtfw0lcVADs=';" condition: 2 of them } rule wh_bindshell_py { meta: description = "Semi-Auto-generated - file wh_bindshell.py.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "fab20902862736e24aaae275af5e049c" strings: $s0 = "#Use: python wh_bindshell.py [port] [password]" $s2 = "python -c\"import md5;x=md5.new('you_password');print x.hexdigest()\"" fullword $s3 = "#bugz: ctrl+c etc =script stoped=" fullword condition: 1 of them } rule lurm_safemod_on_cgi { meta: description = "Semi-Auto-generated - file lurm_safemod_on.cgi.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "5ea4f901ce1abdf20870c214b3231db3" strings: $s0 = "Network security team :: CGI Shell" fullword $s1 = "#########################<>#####################################" fullword $s2 = "##if (!defined$param{pwd}){$param{pwd}='Enter_Password'};##" fullword condition: 1 of them } rule c99madshell_v2_0_php_php { meta: description = "Semi-Auto-generated - file c99madshell_v2.0.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "d27292895da9afa5b60b9d3014f39294" strings: $s2 = "eval(gzinflate(base64_decode('HJ3HkqNQEkU/ZzqCBd4t8V4YAQI2E3jvPV8/1Gw6orsVFLyXef" condition: all of them } rule backupsql_php_often_with_c99shell { meta: description = "Semi-Auto-generated - file backupsql.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "ab1a06ab1a1fe94e3f3b7f80eedbc12f" strings: $s2 = "//$message.= \"--{$mime_boundary}\\n\" .\"Content-Type: {$fileatt_type};\\n\" ." $s4 = "$ftpconnect = \"ncftpput -u $ftp_user_name -p $ftp_user_pass -d debsender_ftplog" condition: all of them } rule uploader_php_php { meta: description = "Semi-Auto-generated - file uploader.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "0b53b67bb3b004a8681e1458dd1895d0" strings: $s2 = "move_uploaded_file($userfile, \"entrika.php\"); " fullword $s3 = "Send this file: " fullword $s4 = "" fullword condition: 2 of them } rule telnet_pl { meta: description = "Semi-Auto-generated - file telnet.pl.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "dd9dba14383064e219e29396e242c1ec" strings: $s0 = "W A R N I N G: Private Server" $s2 = "$Message = q$
     _____  _____  _____          _____   "
    	condition:
    		all of them
    }
    rule w3d_php_php {
    	meta:
    		description = "Semi-Auto-generated  - file w3d.php.php.txt"
    		author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls"
    		hash = "987f66b29bfb209a0b4f097f84f57c3b"
    	strings:
    		$s0 = "W3D Shell"
    		$s1 = "By: Warpboy"
    		$s2 = "No Query Executed"
    	condition:
    		2 of them
    }
    rule WebShell_cgi {
    	meta:
    		description = "Semi-Auto-generated  - file WebShell.cgi.txt"
    		author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls"
    		hash = "bc486c2e00b5fc3e4e783557a2441e6f"
    	strings:
    		$s0 = "WebShell.cgi"
    		$s2 = "
    " condition: 2 of them } rule Dx_php_php { meta: description = "Semi-Auto-generated - file Dx.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "9cfe372d49fe8bf2fac8e1c534153d9b" strings: $s0 = "print \"\\n\".'Tip: to view the file \"as is\" - open the page in
    Win Dir:
    \" method=\"POST" condition: 2 of them } rule Asmodeus_v0_1_pl { meta: description = "Semi-Auto-generated - file Asmodeus v0.1.pl.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "0978b672db0657103c79505df69cb4bb" strings: $s0 = "[url=http://www.governmentsecurity.org" $s1 = "perl asmodeus.pl client 6666 127.0.0.1" $s2 = "print \"Asmodeus Perl Remote Shell" $s4 = "$internet_addr = inet_aton(\"$host\") or die \"ALOA:$!\\n\";" fullword condition: 2 of them } rule backup_php_often_with_c99shell { meta: description = "Semi-Auto-generated - file backup.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "aeee3bae226ad57baf4be8745c3f6094" strings: $s0 = "#phpMyAdmin MySQL-Dump" fullword $s2 = ";db_connect();header('Content-Type: application/octetstr" $s4 = "$data .= \"#Database: $database" fullword condition: all of them } rule Reader_asp { meta: description = "Semi-Auto-generated - file Reader.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "ad1a362e0a24c4475335e3e891a01731" strings: $s1 = "Mehdi & HolyDemon" $s2 = "www.infilak." $s3 = "'*T@*r@#@&mms^PdbYbVuBcAAA==^#~@%>

    " fullword $s1 = "[ADDITINAL TITTLE]-phpShell by:[YOURNAME]<?php echo PHPSHELL_VERSION ?></" $s2 = "href=\"mailto: [YOU CAN ENTER YOUR MAIL HERE]- [ADDITIONAL TEXT]</a></i>" fullword condition: 1 of them } rule myshell_php_php { meta: description = "Semi-Auto-generated - file myshell.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "62783d1db52d05b1b6ae2403a7044490" strings: $s0 = "@chdir($work_dir) or ($shellOutput = \"MyShell: can't change directory." $s1 = "echo \"<font color=$linkColor><b>MyShell file editor</font> File:<font color" $s2 = " $fileEditInfo = \"  :::::::  Owner: <font color=$" condition: 2 of them } rule SimShell_1_0___Simorgh_Security_MGZ_php { meta: description = "Semi-Auto-generated - file SimShell 1.0 - Simorgh Security MGZ.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "37cb1db26b1b0161a4bf678a6b4565bd" strings: $s0 = "Simorgh Security Magazine " $s1 = "Simshell.css" $s2 = "} elseif (ereg('^[[:blank:]]*cd[[:blank:]]+([^;]+)$', $_REQUEST['command'], " $s3 = "www.simorgh-ev.com" condition: 2 of them } rule jspshall_jsp { meta: description = "Semi-Auto-generated - file jspshall.jsp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "efe0f6edaa512c4e1fdca4eeda77b7ee" strings: $s0 = "kj021320" $s1 = "case 'T':systemTools(out);break;" $s2 = "out.println(\"<tr><td>\"+ico(50)+f[i].getName()+\"</td><td> file" condition: 2 of them } rule webshell_php { meta: description = "Semi-Auto-generated - file webshell.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "e425241b928e992bde43dd65180a4894" strings: $s2 = "<die(\"Couldn't Read directory, Blocked!!!\");" $s3 = "PHP Web Shell" condition: all of them } rule rootshell_php { meta: description = "Semi-Auto-generated - file rootshell.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "265f3319075536030e59ba2f9ef3eac6" strings: $s0 = "shells.dl.am" $s1 = "This server has been infected by $owner" $s2 = "<input type=\"submit\" value=\"Include!\" name=\"inc\"></p>" $s4 = "Could not write to file! (Maybe you didn't enter any text?)" condition: 2 of them } rule connectback2_pl { meta: description = "Semi-Auto-generated - file connectback2.pl.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "473b7d226ea6ebaacc24504bd740822e" strings: $s0 = "#We Are: MasterKid, AleXutz, FatMan & MiKuTuL " $s1 = "echo --==Userinfo==-- ; id;echo;echo --==Directory==-- ; pwd;echo; echo --==Shel" $s2 = "ConnectBack Backdoor" condition: 1 of them } rule DefaceKeeper_0_2_php { meta: description = "Semi-Auto-generated - file DefaceKeeper_0.2.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "713c54c3da3031bc614a8a55dccd7e7f" strings: $s0 = "target fi1e:<br><input type=\"text\" name=\"target\" value=\"index.php\"></br>" fullword $s1 = "eval(base64_decode(\"ZXZhbChiYXNlNjRfZGVjb2RlKCJhV2R1YjNKbFgzVnpaWEpmWVdKdmNuUW9" $s2 = "<img src=\"http://s43.radikal.ru/i101/1004/d8/ced1f6b2f5a9.png\" align=\"center" condition: 1 of them } rule shells_PHP_wso { meta: description = "Semi-Auto-generated - file wso.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "33e2891c13b78328da9062fbfcf898b6" strings: $s0 = "$back_connect_p=\"IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbi" $s3 = "echo '<h1>Execution PHP-code</h1><div class=content><form name=pf method=pos" condition: 1 of them } rule backdoor1_php { meta: description = "Semi-Auto-generated - file backdoor1.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "e1adda1f866367f52de001257b4d6c98" strings: $s1 = "echo \"[DIR] <A HREF=\\\"\".$_SERVER['PHP_SELF'].\"?rep=\".realpath($rep.\".." $s2 = "class backdoor {" $s4 = "echo \"<a href=\\\"\".$_SERVER['PHP_SELF'].\"?copy=1\\\">Copier un fichier</a> <" condition: 1 of them } rule elmaliseker_asp { meta: description = "Semi-Auto-generated - file elmaliseker.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "b32d1730d23a660fd6aa8e60c3dc549f" strings: $s0 = "if Int((1-0+1)*Rnd+0)=0 then makeEmail=makeText(8) & \"@\" & makeText(8) & \".\"" $s1 = "<form name=frmCMD method=post action=\"<%=gURL%>\">" $s2 = "dim zombie_array,special_array" $s3 = "http://vnhacker.org" condition: 1 of them } rule indexer_asp { meta: description = "Semi-Auto-generated - file indexer.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "9ea82afb8c7070817d4cdf686abe0300" strings: $s0 = "<td>Nereye :<td><input type=\"text\" name=\"nereye\" size=25></td><td><input typ" $s2 = "D7nD7l.km4snk`JzKnd{n_ejq;bd{KbPur#kQ8AAA==^#~@%>></td><td><input type=\"submit" condition: 1 of them } rule DxShell_php_php { meta: description = "Semi-Auto-generated - file DxShell.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "33a2b31810178f4c2e71fbdeb4899244" strings: $s0 = "print \"\\n\".'Tip: to view the file \"as is\" - open the page in <a href=\"'.Dx" $s2 = "print \"\\n\".'<tr><td width=100pt class=linelisting><nobr>POST (php eval)</td><" condition: 1 of them } rule s72_Shell_v1_1_Coding_html { meta: description = "Semi-Auto-generated - file s72 Shell v1.1 Coding.html.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "c2e8346a5515c81797af36e7e4a3828e" strings: $s0 = "Dizin</font></b></font><font face=\"Verdana\" style=\"font-size: 8pt\"><" $s1 = "s72 Shell v1.0 Codinf by Cr@zy_King" $s3 = "echo \"<p align=center>Dosya Zaten Bulunuyor</p>\"" condition: 1 of them } rule hidshell_php_php { meta: description = "Semi-Auto-generated - file hidshell.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "c2f3327d60884561970c63ffa09439a4" strings: $s0 = "<?$d='G7mHWQ9vvXiL/QX2oZ2VTDpo6g3FYAa6X+8DMIzcD0eHZaBZH7jFpZzUz7XNenxSYvBP2Wy36U" condition: all of them } rule kacak_asp { meta: description = "Semi-Auto-generated - file kacak.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "907d95d46785db21331a0324972dda8c" strings: $s0 = "Kacak FSO 1.0" $s1 = "if request.querystring(\"TGH\") = \"1\" then" $s3 = "<font color=\"#858585\">BuqX</font></a></font><font face=\"Verdana\" style=" $s4 = "mailto:BuqX@hotmail.com" condition: 1 of them } rule PHP_Backdoor_Connect_pl_php { meta: description = "Semi-Auto-generated - file PHP Backdoor Connect.pl.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "57fcd9560dac244aeaf95fd606621900" strings: $s0 = "LorD of IRAN HACKERS SABOTAGE" $s1 = "LorD-C0d3r-NT" $s2 = "echo --==Userinfo==-- ;" condition: 1 of them } rule Antichat_Socks5_Server_php_php { meta: description = "Semi-Auto-generated - file Antichat Socks5 Server.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "cbe9eafbc4d86842a61a54d98e5b61f1" strings: $s0 = "$port = base_convert(bin2hex(substr($reqmessage[$id], 3+$reqlen+1, 2)), 16, 10);" fullword $s3 = "# [+] Domain name address type" $s4 = "www.antichat.ru" condition: 1 of them } rule Antichat_Shell_v1_3_php { meta: description = "Semi-Auto-generated - file Antichat Shell v1.3.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "40d0abceba125868be7f3f990f031521" strings: $s0 = "Antichat" $s1 = "Can't open file, permission denide" $s2 = "$ra44" condition: 2 of them } rule Safe_Mode_Bypass_PHP_4_4_2_and_PHP_5_1_2_php { meta: description = "Semi-Auto-generated - file Safe_Mode Bypass PHP 4.4.2 and PHP 5.1.2.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "49ad9117c96419c35987aaa7e2230f63" strings: $s0 = "Welcome.. By This script you can jump in the (Safe Mode=ON) .. Enjoy" $s1 = "Mode Shell v1.0</font></span>" $s2 = "has been already loaded. PHP Emperor <xb5@hotmail." condition: 1 of them } rule mysql_php_php { meta: description = "Semi-Auto-generated - file mysql.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "12bbdf6ef403720442a47a3cc730d034" strings: $s0 = "action=mysqlread&mass=loadmass\">load all defaults" $s2 = "if (@passthru($cmd)) { echo \" -->\"; $this->output_state(1, \"passthru" $s3 = "$ra44 = rand(1,99999);$sj98 = \"sh-$ra44\";$ml = \"$sd98\";$a5 = " condition: 1 of them } rule Worse_Linux_Shell_php { meta: description = "Semi-Auto-generated - file Worse Linux Shell.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "8338c8d9eab10bd38a7116eb534b5fa2" strings: $s1 = "print \"<tr><td><b>Server is:</b></td><td>\".$_SERVER['SERVER_SIGNATURE'].\"</td" $s2 = "print \"<tr><td><b>Execute command:</b></td><td><input size=100 name=\\\"_cmd" condition: 1 of them } rule cyberlords_sql_php_php { meta: description = "Semi-Auto-generated - file cyberlords_sql.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "03b06b4183cb9947ccda2c3d636406d4" strings: $s0 = "Coded by n0 [nZer0]" $s1 = " www.cyberlords.net" $s2 = "U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAMUExURf///wAAAJmZzAAAACJoURkAAAAE" $s3 = "return \"<BR>Dump error! Can't write to \".htmlspecialchars($file);" condition: 1 of them } rule cmd_asp_5_1_asp { meta: description = "Semi-Auto-generated - file cmd-asp-5.1.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "8baa99666bf3734cbdfdd10088e0cd9f" strings: $s0 = "Call oS.Run(\"win.com cmd.exe /c del \"& szTF,0,True)" fullword $s3 = "Call oS.Run(\"win.com cmd.exe /c \"\"\" & szCMD & \" > \" & szTF &" fullword condition: 1 of them } rule pws_php_php { meta: description = "Semi-Auto-generated - file pws.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "ecdc6c20f62f99fa265ec9257b7bf2ce" strings: $s0 = "<div align=\"left\"><font size=\"1\">Input command :</font></div>" fullword $s1 = "<input type=\"text\" name=\"cmd\" size=\"30\" class=\"input\"><br>" fullword $s4 = "<input type=\"text\" name=\"dir\" size=\"30\" value=\"<? passthru(\"pwd\"); ?>" condition: 2 of them } rule PHP_Shell_php_php { meta: description = "Semi-Auto-generated - file PHP Shell.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "a2f8fa4cce578fc9c06f8e674b9e63fd" strings: $s0 = "echo \"</form><form action=\\\"$SFileName?$urlAdd\\\" method=\\\"post\\\"><input" $s1 = "echo \"<form action=\\\"$SFileName?$urlAdd\\\" method=\\\"POST\\\"><input type=" condition: all of them } rule Ayyildiz_Tim___AYT__Shell_v_2_1_Biz_html { meta: description = "Semi-Auto-generated - file Ayyildiz Tim -AYT- Shell v 2.1 Biz.html.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "8a8c8bb153bd1ee097559041f2e5cf0a" strings: $s0 = "Ayyildiz" $s1 = "TouCh By iJOo" $s2 = "First we check if there has been asked for a working directory" $s3 = "http://ayyildiz.org/images/whosonline2.gif" condition: 2 of them } rule EFSO_2_asp { meta: description = "Semi-Auto-generated - file EFSO_2.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "b5fde9682fd63415ae211d53c6bfaa4d" strings: $s0 = "Ejder was HERE" $s1 = "*~PU*&BP[_)f!8c2F*@#@&~,P~P,~P&q~8BPmS~9~~lB~X`V,_,F&*~,jcW~~[_c3TRFFzq@#@&PP,~~" condition: 2 of them } rule lamashell_php { meta: description = "Semi-Auto-generated - file lamashell.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "de9abc2e38420cad729648e93dfc6687" strings: $s0 = "lama's'hell" fullword $s1 = "if($_POST['king'] == \"\") {" $s2 = "if (move_uploaded_file($_FILES['fila']['tmp_name'], $curdir.\"/\".$_FILES['f" condition: 1 of them } rule Ajax_PHP_Command_Shell_php { meta: description = "Semi-Auto-generated - file Ajax_PHP Command Shell.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "93d1a2e13a3368a2472043bd6331afe9" strings: $s1 = "newhtml = '<b>File browser is under construction! Use at your own risk!</b> <br>" $s2 = "Empty Command..type \\\"shellhelp\\\" for some ehh...help" $s3 = "newhtml = '<font size=0><b>This will reload the page... :(</b><br><br><form enct" condition: 1 of them } rule JspWebshell_1_2_jsp { meta: description = "Semi-Auto-generated - file JspWebshell 1.2.jsp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "70a0ee2624e5bbe5525ccadc467519f6" strings: $s0 = "JspWebshell" $s1 = "CreateAndDeleteFolder is error:" $s2 = "<td width=\"70%\" height=\"22\"> <%=env.queryHashtable(\"java.c" $s3 = "String _password =\"111\";" condition: 2 of them } rule Sincap_php_php { meta: description = "Semi-Auto-generated - file Sincap.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "b68b90ff6012a103e57d141ed38a7ee9" strings: $s0 = "$baglan=fopen(\"/tmp/$ekinci\",'r');" $s2 = "$tampon4=$tampon3-1" $s3 = "@aventgrup.net" condition: 2 of them } rule Test_php_php { meta: description = "Semi-Auto-generated - file Test.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "77e331abd03b6915c6c6c7fe999fcb50" strings: $s0 = "$yazi = \"test\" . \"\\r\\n\";" fullword $s2 = "fwrite ($fp, \"$yazi\");" fullword $s3 = "$entry_line=\"HACKed by EntriKa\";" fullword condition: 1 of them } rule Phyton_Shell_py { meta: description = "Semi-Auto-generated - file Phyton Shell.py.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "92b3c897090867c65cc169ab037a0f55" strings: $s1 = "sh_out=os.popen(SHELL+\" \"+cmd).readlines()" fullword $s2 = "# d00r.py 0.3a (reverse|bind)-shell in python by fQ" fullword $s3 = "print \"error; help: head -n 16 d00r.py\"" fullword $s4 = "print \"PW:\",PW,\"PORT:\",PORT,\"HOST:\",HOST" fullword condition: 1 of them } rule mysql_tool_php_php { meta: description = "Semi-Auto-generated - file mysql_tool.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "5fbe4d8edeb2769eda5f4add9bab901e" strings: $s0 = "$error_text = '<strong>Failed selecting database \"'.$this->db['" $s1 = "$ra44 = rand(1,99999);$sj98 = \"sh-$ra44\";$ml = \"$sd98\";$a5 = $_SERV" $s4 = "<div align=\"center\">The backup process has now started<br " condition: 1 of them } rule Zehir_4_asp { meta: description = "Semi-Auto-generated - file Zehir 4.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "7f4e12e159360743ec016273c3b9108c" strings: $s2 = "</a><a href='\"&dosyapath&\"?status=10&dPath=\"&f1.path&\"&path=\"&path&\"&Time=" $s4 = "<input type=submit value=\"Test Et!\" onclick=\"" condition: 1 of them } rule sh_php_php { meta: description = "Semi-Auto-generated - file sh.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "330af9337ae51d0bac175ba7076d6299" strings: $s1 = "$ar_file=array('/etc/passwd','/etc/shadow','/etc/master.passwd','/etc/fstab','/e" $s2 = "Show <input type=text size=5 value=\".((isset($_POST['br_st']))?$_POST['br_st']:" condition: 1 of them } rule phpbackdoor15_php { meta: description = "Semi-Auto-generated - file phpbackdoor15.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "0fdb401a49fc2e481e3dfd697078334b" strings: $s1 = "echo \"fichier telecharge dans \".good_link(\"./\".$_FILES[\"fic\"][\"na" $s2 = "if(move_uploaded_file($_FILES[\"fic\"][\"tmp_name\"],good_link(\"./\".$_FI" $s3 = "echo \"Cliquez sur un nom de fichier pour lancer son telechargement. Cliquez s" condition: 1 of them } rule phpjackal_php { meta: description = "Semi-Auto-generated - file phpjackal.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "ab230817bcc99acb9bdc0ec6d264d76f" strings: $s3 = "$dl=$_REQUEST['downloaD'];" $s4 = "else shelL(\"perl.exe $name $port\");" condition: 1 of them } rule sql_php_php { meta: description = "Semi-Auto-generated - file sql.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "8334249cbb969f2d33d678fec2b680c5" strings: $s1 = "fputs ($fp, \"# RST MySQL tools\\r\\n# Home page: http://rst.void.ru\\r\\n#" $s2 = "http://rst.void.ru" $s3 = "print \"<a href=\\\"$_SERVER[PHP_SELF]?s=$s&login=$login&passwd=$passwd&" condition: 1 of them } rule cgi_python_py { meta: description = "Semi-Auto-generated - file cgi-python.py.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "0a15f473e2232b89dae1075e1afdac97" strings: $s0 = "a CGI by Fuzzyman" $s1 = "\"\"\"+fontline +\"Version : \" + versionstring + \"\"\", Running on : \"\"\" + " $s2 = "values = map(lambda x: x.value, theform[field]) # allows for" condition: 1 of them } rule ru24_post_sh_php_php { meta: description = "Semi-Auto-generated - file ru24_post_sh.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "5b334d494564393f419af745dc1eeec7" strings: $s1 = "<title>Ru24PostWebShell - \".$_POST['cmd'].\"" fullword $s3 = "if ((!$_POST['cmd']) || ($_POST['cmd']==\"\")) { $_POST['cmd']=\"id;pwd;uname -a" $s4 = "Writed by DreAmeRz" fullword condition: 1 of them } rule DTool_Pro_php { meta: description = "Semi-Auto-generated - file DTool Pro.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "366ad973a3f327dfbfb915b0faaea5a6" strings: $s0 = "r3v3ng4ns\\nDigite" $s1 = "if(!@opendir($chdir)) $ch_msg=\"dtool: line 1: chdir: It seems that the permissi" $s3 = "if (empty($cmd) and $ch_msg==\"\") echo (\"Comandos Exclusivos do DTool Pro\\n" condition: 1 of them } rule telnetd_pl { meta: description = "Semi-Auto-generated - file telnetd.pl.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "5f61136afd17eb025109304bd8d6d414" strings: $s0 = "0ldW0lf" fullword $s1 = "However you are lucky :P" $s2 = "I'm FuCKeD" $s3 = "ioctl($CLIENT{$client}->{shell}, &TIOCSWINSZ, $winsize);#" $s4 = "atrix@irc.brasnet.org" condition: 1 of them } rule php_include_w_shell_php { meta: description = "Semi-Auto-generated - file php-include-w-shell.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "4e913f159e33867be729631a7ca46850" strings: $s0 = "$dataout .= \"
    \" : \"[admin\\@$ServerName $C" condition: 1 of them } rule ironshell_php { meta: description = "Semi-Auto-generated - file ironshell.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "8bfa2eeb8a3ff6afc619258e39fded56" strings: $s0 = "www.ironwarez.info" $s1 = "$cookiename = \"wieeeee\";" $s2 = "~ Shell I" $s3 = "www.rootshell-team.info" $s4 = "setcookie($cookiename, $_POST['pass'], time()+3600);" condition: 1 of them } rule backdoorfr_php { meta: description = "Semi-Auto-generated - file backdoorfr.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "91e4afc7444ed258640e85bcaf0fecfc" strings: $s1 = "www.victime.com/index.php?page=http://emplacement_de_la_backdoor.php , ou en tan" $s2 = "print(\"
    Provenance du mail : /tmp/cmdtemp 2>&1; cat /tmp/cmdtemp; rm /tmp/cmdtemp\");" condition: 1 of them } rule Ajan_asp { meta: description = "Semi-Auto-generated - file Ajan.asp.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "b6f468252407efc2318639da22b08af0" strings: $s1 = "c:\\downloaded.zip" $s2 = "Set entrika = entrika.CreateTextFile(\"c:\\net.vbs\", True)" fullword $s3 = "http://www35.websamba.com/cybervurgun/" condition: 1 of them } rule PHANTASMA_php { meta: description = "Semi-Auto-generated - file PHANTASMA.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "52779a27fa377ae404761a7ce76a5da7" strings: $s0 = ">[*] Safemode Mode Run" $s1 = "$file1 - $file2 -
    $file
    " $s2 = "[*] Spawning Shell" $s3 = "Cha0s" condition: 2 of them } rule MySQL_Web_Interface_Version_0_8_php { meta: description = "Semi-Auto-generated - file MySQL Web Interface Version 0.8.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "36d4f34d0a22080f47bb1cb94107c60f" strings: $s0 = "SooMin Kim" $s1 = "http://popeye.snu.ac.kr/~smkim/mysql" $s2 = "href='$PHP_SELF?action=dropField&dbname=$dbname&tablename=$tablename" $s3 = "
    Type M  D unsignedzerofi" condition: 2 of them } rule simple_cmd_html { meta: description = "Semi-Auto-generated - file simple_cmd.html.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" hash = "c6381412df74dbf3bcd5a2b31522b544" strings: $s1 = "G-Security Webshell" fullword $s2 = "\" " fullword $s3 = "" fullword $s4 = "" fullword condition: all of them } rule multiple_webshells_0001 { meta: description = "Semi-Auto-generated - from files 1.txt, c2007.php.php.txt, c100.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" super_rule = 1 was = "_1_c2007_php_php_c100_php" hash0 = "44542e5c3e9790815c49d5f9beffbbf2" hash1 = "d089e7168373a0634e1ac18c0ee00085" hash2 = "38fd7e45f9c11a37463c3ded1c76af4c" strings: $s0 = "echo \"Changing file-mode (\".$d.$f.\"), \".view_perms_color($d.$f).\" (\"" $s3 = "echo \" Done!
    Total time (secs.): \".$ft" $s3 = "$fqb_log .= \"\\r\\n------------------------------------------\\r\\nDone!\\r" condition: 1 of them } rule multiple_webshells_0005 { meta: description = "Semi-Auto-generated - from files r577.php.php.txt, SnIpEr_SA Shell.php.txt, r57.php.php.txt, r57 Shell.php.php.txt, spy.php.php.txt, s.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" super_rule = 1 was = "_r577_php_php_SnIpEr_SA_Shell_php_r57_php_php_r57_Shell_php_php_spy_php_php_s_php_php" hash0 = "0714f80f35c1fddef1f8938b8d42a4c8" hash1 = "911195a9b7c010f61b66439d9048f400" hash2 = "eddf7a8fde1e50a7f2a817ef7cece24f" hash3 = "8023394542cddf8aee5dec6072ed02b5" hash4 = "eed14de3907c9aa2550d95550d1a2d5f" hash5 = "817671e1bdc85e04cc3440bbd9288800" strings: $s2 = "'eng_text71'=>\"Second commands param is:\\r\\n- for CHOWN - name of new owner o" $s4 = "if(!empty($_POST['s_mask']) && !empty($_POST['m'])) { $sr = new SearchResult" condition: 1 of them } rule multiple_webshells_0006 { meta: description = "Semi-Auto-generated - from files c99shell_v1.0.php.php.txt, c99php.txt, SsEs.php.php.txt, ctt_sh.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" super_rule = 1 was = "_c99shell_v1_0_php_php_c99php_SsEs_php_php_ctt_sh_php_php" hash0 = "d8ae5819a0a2349ec552cbcf3a62c975" hash1 = "9e9ae0332ada9c3797d6cee92c2ede62" hash2 = "6cd50a14ea0da0df6a246a60c8f6f9c9" hash3 = "671cad517edd254352fe7e0c7c981c39" strings: $s0 = "\"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJqyzFalqEQJuGEQSCnWg6FogpkHAMF4HAJsWh7/ze\"" $s2 = "\"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm\"" $s4 = "\"R0lGODlhFAAUAKL/AP/4/8DAwH9/AP/4AL+/vwAAAAAAAAAAACH5BAEAAAEALAAAAAAUABQAQAMo\"" condition: 2 of them } rule multiple_webshells_0007 { meta: description = "Semi-Auto-generated - from files r577.php.php.txt, spy.php.php.txt, s.php.php.txt" author = "Neo23x0 Yara BRG + customization by Stefan -dfate- Molls" super_rule = 1 was = "_r577_php_php_spy_php_php_s_php_php" hash0 = "0714f80f35c1fddef1f8938b8d42a4c8" hash1 = "eed14de3907c9aa2550d95550d1a2d5f" hash2 = "817671e1bdc85e04cc3440bbd9288800" strings: $s2 = "echo $te.\"
    XXXX\" title=\"<%=SubFolder.Name%>\"> \" title=\"<%=File.Name%>\"> \" align=\"right\"><%=Attributes(SubFolder.Attributes)%>\">" condition: all of them } rule byloader { meta: description = "Webshells Auto-generated - file byloader.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "0f0d6dc26055653f5844ded906ce52df" strings: $s0 = "SYSTEM\\CurrentControlSet\\Services\\NtfsChk" $s1 = "Failure ... Access is Denied !" $s2 = "NTFS Disk Driver Checking Service" $s3 = "Dumping Description to Registry..." $s4 = "Opening Service .... Failure !" condition: all of them } rule shelltools_g0t_root_Fport { meta: description = "Webshells Auto-generated - file Fport.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "dbb75488aa2fa22ba6950aead1ef30d5" strings: $s4 = "Copyright 2000 by Foundstone, Inc." $s5 = "You must have administrator privileges to run fport - exiting..." condition: all of them } rule BackDooR__fr_ { meta: description = "Webshells Auto-generated - file BackDooR (fr).php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "a79cac2cf86e073a832aaf29a664f4be" strings: $s3 = "print(\"

    Exploit include " condition: all of them } rule FSO_s_ntdaddy { meta: description = "Webshells Auto-generated - file ntdaddy.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "f6262f3ad9f73b8d3e7d9ea5ec07a357" strings: $s1 = "\"> &X\\\";open STDERR,\\\">&X\\\";exec(\\\"/bin/sh -i\\\");" condition: all of them } rule HYTop_DevPack_upload { meta: description = "Webshells Auto-generated - file upload.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "b09852bda534627949f0259828c967de" strings: $s0 = "" condition: all of them } rule PasswordReminder { meta: description = "Webshells Auto-generated - file PasswordReminder.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "ea49d754dc609e8bfa4c0f95d14ef9bf" strings: $s3 = "The encoded password is found at 0x%8.8lx and has a length of %d." condition: all of them } rule Pack_InjectT { meta: description = "Webshells Auto-generated - file InjectT.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "983b74ccd57f6195a0584cdfb27d55e8" strings: $s3 = "ail To Open Registry" $s4 = "32fDssignim" $s5 = "vide Internet S" $s6 = "d]Software\\M" $s7 = "TInject.Dll" condition: all of them } rule FSO_s_RemExp_2 { meta: description = "Webshells Auto-generated - file RemExp.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "b69670ecdbb40012c73686cd22696eeb" strings: $s2 = " Then Response.Write \"" $s3 = "" condition: all of them } rule FSO_s_c99 { meta: description = "Webshells Auto-generated - file c99.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "5f9ba02eb081bba2b2434c603af454d0" strings: $s2 = "\"txt\",\"conf\",\"bat\",\"sh\",\"js\",\"bak\",\"doc\",\"log\",\"sfc\",\"cfg\",\"htacce" condition: all of them } rule rknt_zip_Folder_RkNT { meta: description = "Webshells Auto-generated - file RkNT.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "5f97386dfde148942b7584aeb6512b85" strings: $s0 = "PathStripPathA" $s1 = "`cLGet!Addr%" $s2 = "$Info: This file is packed with the UPX executable packer http://upx.tsx.org $" $s3 = "oQToOemBuff* <=" $s4 = "ionCdunAsw[Us'" $s6 = "CreateProcessW: %S" $s7 = "ImageDirectoryEntryToData" condition: all of them } rule dbgntboot { meta: description = "Webshells Auto-generated - file dbgntboot.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "4d87543d4d7f73c1529c9f8066b475ab" strings: $s2 = "now DOS is working at mode %d,faketype %d,against %s,has worked %d minutes,by sp" $s3 = "sth junk the M$ Wind0wZ retur" condition: all of them } rule PHP_shell { meta: description = "Webshells Auto-generated - file shell.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "45e8a00567f8a34ab1cccc86b4bc74b9" strings: $s0 = "AR8iROET6mMnrqTpC6W1Kp/DsTgxNby9H1xhiswfwgoAtED0y6wEXTihoAtICkIX6L1+vTUYWuWz" $s11 = "1HLp1qnlCyl5gko8rDlWHqf8/JoPKvGwEm9Q4nVKvEh0b0PKle3zeFiJNyjxOiVepMSpflJkPv5s" condition: all of them } rule hxdef100 { meta: description = "Webshells Auto-generated - file hxdef100.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "55cc1769cef44910bd91b7b73dee1f6c" strings: $s0 = "RtlAnsiStringToUnicodeString" $s8 = "SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\" $s9 = "\\\\.\\mailslot\\hxdef-rk100sABCDEFGH" condition: all of them } rule rdrbs100 { meta: description = "Webshells Auto-generated - file rdrbs100.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "7c752bcd6da796d80a6830c61a632bff" strings: $s3 = "Server address must be IP in A.B.C.D format." $s4 = " mapped ports in the list. Currently " condition: all of them } rule Mithril_Mithril { meta: description = "Webshells Auto-generated - file Mithril.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "017191562d72ab0ca551eb89256650bd" strings: $s0 = "OpenProcess error!" $s1 = "WriteProcessMemory error!" $s4 = "GetProcAddress error!" $s5 = "HHt`HHt\\" $s6 = "Cmaudi0" $s7 = "CreateRemoteThread error!" $s8 = "Kernel32" $s9 = "VirtualAllocEx error!" condition: all of them } rule hxdef100_2 { meta: description = "Webshells Auto-generated - file hxdef100.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "1b393e2e13b9c57fb501b7cd7ad96b25" strings: $s0 = "\\\\.\\mailslot\\hxdef-rkc000" $s2 = "Shared Components\\On Access Scanner\\BehaviourBlo" $s6 = "SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\" condition: all of them } rule Release_dllTest { meta: description = "Webshells Auto-generated - file dllTest.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "76a59fc3242a2819307bb9d593bef2e0" strings: $s0 = ";;;Y;`;d;h;l;p;t;x;|;" $s1 = "0 0&00060K0R0X0f0l0q0w0" $s2 = ": :$:(:,:0:4:8:D:`=d=" $s3 = "4@5P5T5\\5T7\\7d7l7t7|7" $s4 = "1,121>1C1K1Q1X1^1e1k1s1y1" $s5 = "9 9$9(9,9P9X9\\9`9d9h9l9p9t9x9|9" $s6 = "0)0O0\\0a0o0\"1E1P1q1" $s7 = "<.\".ws(2).\"HDD Free : \".view_size($free).\" HDD Total : \".view_" condition: all of them } rule Mithril_v1_45_dllTest { meta: description = "Webshells Auto-generated - file dllTest.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "1b9e518aaa62b15079ff6edb412b21e9" strings: $s3 = "syspath" $s4 = "\\Mithril" $s5 = "--list the services in the computer" condition: all of them } rule dbgiis6cli { meta: description = "Webshells Auto-generated - file dbgiis6cli.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "3044dceb632b636563f66fee3aaaf8f3" strings: $s0 = "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" $s5 = "###command:(NO more than 100 bytes!)" condition: all of them } rule remview_2003_04_22 { meta: description = "Webshells Auto-generated - file remview_2003_04_22.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "17d3e4e39fbca857344a7650f7ea55e3" strings: $s1 = "\"\".mm(\"Eval PHP code\").\" (\".mm(\"don't type\").\" \\\"<?\\\"" condition: all of them } rule FSO_s_test { meta: description = "Webshells Auto-generated - file test.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "82cf7b48da8286e644f575b039a99c26" strings: $s0 = "$yazi = \"test\" . \"\\r\\n\";" $s2 = "fwrite ($fp, \"$yazi\");" condition: all of them } rule Debug_cress { meta: description = "Webshells Auto-generated - file cress.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "36a416186fe010574c9be68002a7286a" strings: $s0 = "\\Mithril " $s4 = "Mithril.exe" condition: all of them } rule webshell { meta: description = "Webshells Auto-generated - file webshell.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "f2f8c02921f29368234bfb4d4622ad19" strings: $s0 = "RhViRYOzz" $s1 = "d\\O!jWW" $s2 = "bc!jWW" $s3 = "0W[&{l" $s4 = "[INhQ@\\" condition: all of them } rule FSO_s_EFSO_2 { meta: description = "Webshells Auto-generated - file EFSO_2.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "a341270f9ebd01320a7490c12cb2e64c" strings: $s0 = ";!+/DRknD7+.\\mDrC(V+kcJznndm\\f|nzKuJb'r@!&0KUY@*Jb@#@&Xl\"dKVcJ\\CslU,),@!0KxD~mKV" $s4 = "\\co!VV2CDtSJ'E*#@#@&mKx/DP14lM/nY{JC81N+6LtbL3^hUWa;M/OE-AXX\"b~/fAs!u&9|J\\grKp\"j" condition: all of them } rule thelast_index3 { meta: description = "Webshells Auto-generated - file index3.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "cceff6dc247aaa25512bad22120a14b4" strings: $s5 = "$err = \"Your Name Not Entered!Sorry, \\\"Your Name\\\" field is r" condition: all of them } rule adjustcr { meta: description = "Webshells Auto-generated - file adjustcr.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "17037fa684ef4c90a25ec5674dac2eb6" strings: $s0 = "$Info: This file is packed with the UPX executable packer $" $s2 = "$License: NRV for UPX is distributed under special license $" $s6 = "AdjustCR Carr" $s7 = "ION\\System\\FloatingPo" condition: all of them } rule FeliksPack3___PHP_Shells_xIShell { meta: description = "Webshells Auto-generated - file xIShell.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "997c8437c0621b4b753a546a53a88674" strings: $s3 = "if (!$nix) { $xid = implode(explode(\"\\\\\",$xid),\"\\\\\\\\\");}echo (\"

    \")" condition: all of them } rule EditServer_Webshell_2 { meta: description = "Webshells Auto-generated - file EditServer.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "5c1f25a4d206c83cdfb006b3eb4c09ba" strings: $s0 = "@HOTMAIL.COM" $s1 = "Press Any Ke" $s3 = "glish MenuZ" condition: all of them } rule by064cli { meta: description = "Webshells Auto-generated - file by064cli.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "10e0dff366968b770ae929505d2a9885" strings: $s7 = "packet dropped,redirecting" $s9 = "input the password(the default one is 'by')" condition: all of them } rule Mithril_dllTest { meta: description = "Webshells Auto-generated - file dllTest.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "a8d25d794d8f08cd4de0c3d6bf389e6d" strings: $s0 = "please enter the password:" $s3 = "\\dllTest.pdb" condition: all of them } rule peek_a_boo { meta: description = "Webshells Auto-generated - file peek-a-boo.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "aca339f60d41fdcba83773be5d646776" strings: $s0 = "__vbaHresultCheckObj" $s1 = "\\VB\\VB5.OLB" $s2 = "capGetDriverDescriptionA" $s3 = "__vbaExceptHandler" $s4 = "EVENT_SINK_Release" $s8 = "__vbaErrorOverflow" condition: all of them } rule fmlibraryv3 { meta: description = "Webshells Auto-generated - file fmlibraryv3.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "c34c248fed6d5a20d8203924a2088acc" strings: $s3 = "ExeNewRs.CommandText = \"UPDATE \" & tablename & \" SET \" & ExeNewRsValues & \" WHER" condition: all of them } rule Debug_dllTest_2 { meta: description = "Webshells Auto-generated - file dllTest.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "1b9e518aaa62b15079ff6edb412b21e9" strings: $s4 = "\\Debug\\dllTest.pdb" $s5 = "--list the services in the computer" condition: all of them } rule connector { meta: description = "Webshells Auto-generated - file connector.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "3ba1827fca7be37c8296cd60be9dc884" strings: $s2 = "If ( AttackID = BROADCAST_ATTACK )" $s4 = "Add UNIQUE ID for victims / zombies" condition: all of them } rule shelltools_g0t_root_HideRun { meta: description = "Webshells Auto-generated - file HideRun.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "45436d9bfd8ff94b71eeaeb280025afe" strings: $s0 = "Usage -- hiderun [AppName]" $s7 = "PVAX SW, Alexey A. Popoff, Moscow, 1997." condition: all of them } rule regshell { meta: description = "Webshells Auto-generated - file regshell.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "db2fdc821ca6091bab3ebd0d8bc46ded" strings: $s0 = "Changes the base hive to HKEY_CURRENT_USER." $s4 = "Displays a list of values and sub-keys in a registry Hive." $s5 = "Enter a menu selection number (1 - 3) or 99 to Exit: " condition: all of them } rule PHP_Shell_v1_7 { meta: description = "Webshells Auto-generated - file PHP_Shell_v1.7.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "b5978501c7112584532b4ca6fb77cba5" strings: $s8 = "[ADDITINAL TITTLE]-phpShell by:[YOURNAME]" condition: all of them } rule xssshell_save { meta: description = "Webshells Auto-generated - file save.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "865da1b3974e940936fe38e8e1964980" strings: $s4 = "RawCommand = Command & COMMAND_SEPERATOR & Param & COMMAND_SEPERATOR & AttackID" $s5 = "VictimID = fm_NStr(Victims(i))" condition: all of them } rule screencap { meta: description = "Webshells Auto-generated - file screencap.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "51139091dea7a9418a50f2712ea72aa6" strings: $s0 = "GetDIBColorTable" $s1 = "Screen.bmp" $s2 = "CreateDCA" condition: all of them } rule FSO_s_phpinj_2 { meta: description = "Webshells Auto-generated - file phpinj.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "dd39d17e9baca0363cc1c3664e608929" strings: $s9 = "<? system(\\$_GET[cpc]);exit; ?>' ,0 ,0 ,0 ,0 INTO" condition: all of them } rule ZXshell2_0_rar_Folder_zxrecv { meta: description = "Webshells Auto-generated - file zxrecv.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "5d3d12a39f41d51341ef4cb7ce69d30f" strings: $s0 = "RyFlushBuff" $s1 = "teToWideChar^FiYP" $s2 = "mdesc+8F D" $s3 = "\\von76std" $s4 = "5pur+virtul" $s5 = "- Kablto io" $s6 = "ac#f{lowi8a" condition: all of them } rule FSO_s_ajan { meta: description = "Webshells Auto-generated - file ajan.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "22194f8c44524f80254e1b5aec67b03e" strings: $s4 = "entrika.write \"BinaryStream.SaveToFile" condition: all of them } rule c99shell { meta: description = "Webshells Auto-generated - file c99shell.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "90b86a9c63e2cd346fe07cea23fbfc56" strings: $s0 = "<br />Input URL: <input name=\\\"uploadurl\\\" type=\\\"text\\\"&" condition: all of them } rule phpspy_2005_full { meta: description = "Webshells Auto-generated - file phpspy_2005_full.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "d1c69bb152645438440e6c903bac16b2" strings: $s7 = "echo \" <td align=\\\"center\\\" nowrap valign=\\\"top\\\"><a href=\\\"?downfile=\".urlenco" condition: all of them } rule FSO_s_zehir4_2 { meta: description = "Webshells Auto-generated - file zehir4.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "5b496a61363d304532bcf52ee21f5d55" strings: $s4 = "\"Program Files\\Serv-u\\Serv" condition: all of them } rule httpdoor { meta: description = "Webshells Auto-generated - file httpdoor.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "6097ea963455a09474471a9864593dc3" strings: $s4 = "''''''''''''''''''DaJKHPam" $s5 = "o,WideCharR]!n]" $s6 = "HAutoComplete" $s7 = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> <assembly xmlns=\"urn:sch" condition: all of them } rule FSO_s_indexer_2 { meta: description = "Webshells Auto-generated - file indexer.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "135fc50f85228691b401848caef3be9e" strings: $s5 = "<td>Nerden :<td><input type=\"text\" name=\"nerden\" size=25 value=index.html></td>" condition: all of them } rule HYTop_DevPack_2005 { meta: description = "Webshells Auto-generated - file 2005.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "63d9fd24fa4d22a41fc5522fc7050f9f" strings: $s7 = "theHref=encodeForUrl(mid(replace(lcase(list.path),lcase(server.mapPath(\"/\")),\"\")" $s8 = "scrollbar-darkshadow-color:#9C9CD3;" $s9 = "scrollbar-face-color:#E4E4F3;" condition: all of them } rule _root_040_zip_Folder_deploy { meta: description = "Webshells Auto-generated - file deploy.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "2c9f9c58999256c73a5ebdb10a9be269" strings: $s5 = "halon synscan 127.0.0.1 1-65536" $s8 = "Obviously you replace the ip address with that of the target." condition: all of them } rule by063cli { meta: description = "Webshells Auto-generated - file by063cli.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "49ce26eb97fd13b6d92a5e5d169db859" strings: $s2 = "#popmsghello,are you all right?" $s4 = "connect failed,check your network and remote ip." condition: all of them } rule icyfox007v1_10_rar_Folder_asp { meta: description = "Webshells Auto-generated - file asp.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "2c412400b146b7b98d6e7755f7159bb9" strings: $s0 = "<SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT>eval(Request.form('#')+'')</SCRIPT>" condition: all of them } rule FSO_s_EFSO_2_2 { meta: description = "Webshells Auto-generated - file EFSO_2.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "a341270f9ebd01320a7490c12cb2e64c" strings: $s0 = ";!+/DRknD7+.\\mDrC(V+kcJznndm\\f|nzKuJb'r@!&0KUY@*Jb@#@&Xl\"dKVcJ\\CslU,),@!0KxD~mKV" $s4 = "\\co!VV2CDtSJ'E*#@#@&mKx/DP14lM/nY{JC81N+6LtbL3^hUWa;M/OE-AXX\"b~/fAs!u&9|J\\grKp\"j" condition: all of them } rule byshell063_ntboot_2 { meta: description = "Webshells Auto-generated - file ntboot.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "cb9eb5a6ff327f4d6c46aacbbe9dda9d" strings: $s6 = "OK,job was done,cuz we have localsystem & SE_DEBUG_NAME:)" condition: all of them } rule u_uay { meta: description = "Webshells Auto-generated - file uay.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "abbc7b31a24475e4c5d82fc4c2b8c7c4" strings: $s1 = "exec \"c:\\WINDOWS\\System32\\freecell.exe" $s9 = "SYSTEM\\CurrentControlSet\\Services\\uay.sys\\Security" condition: 1 of them } rule bin_wuaus { meta: description = "Webshells Auto-generated - file wuaus.dll" author = "Yara Bulk Rule Generator by Florian Roth" hash = "46a365992bec7377b48a2263c49e4e7d" strings: $s1 = "9(90989@9V9^9f9n9v9" $s2 = ":(:,:0:4:8:C:H:N:T:Y:_:e:o:y:" $s3 = ";(=@=G=O=T=X=\\=" $s4 = "TCP Send Error!!" $s5 = "1\"1;1X1^1e1m1w1~1" $s8 = "=$=)=/=<=Y=_=j=p=z=" condition: all of them } rule pwreveal { meta: description = "Webshells Auto-generated - file pwreveal.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "b4e8447826a45b76ca45ba151a97ad50" strings: $s0 = "*<Blank - no es" $s3 = "JDiamondCS " $s8 = "sword set> [Leith=0 bytes]" $s9 = "ION\\System\\Floating-" condition: all of them } rule shelltools_g0t_root_xwhois { meta: description = "Webshells Auto-generated - file xwhois.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "0bc98bd576c80d921a3460f8be8816b4" strings: $s1 = "rting! " $s2 = "aTypCog(" $s5 = "Diamond" $s6 = "r)r=rQreryr" condition: all of them } rule vanquish_2 { meta: description = "Webshells Auto-generated - file vanquish.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "2dcb9055785a2ee01567f52b5a62b071" strings: $s2 = "Vanquish - DLL injection failed:" condition: all of them } rule down_rar_Folder_down { meta: description = "Webshells Auto-generated - file down.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "db47d7a12b3584a2e340567178886e71" strings: $s0 = "response.write \"<font color=blue size=2>NetBios Name: \\\\\" & Snet.ComputerName &" condition: all of them } rule cmdShell { meta: description = "Webshells Auto-generated - file cmdShell.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "8a9fef43209b5d2d4b81dfbb45182036" strings: $s1 = "if cmdPath=\"wscriptShell\" then" condition: all of them } rule ZXshell2_0_rar_Folder_nc { meta: description = "Webshells Auto-generated - file nc.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "2cd1bf15ae84c5f6917ddb128827ae8b" strings: $s0 = "WSOCK32.dll" $s1 = "?bSUNKNOWNV" $s7 = "p@gram Jm6h)" $s8 = "ser32.dllCONFP@" condition: all of them } rule portlessinst { meta: description = "Webshells Auto-generated - file portlessinst.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "74213856fc61475443a91cd84e2a6c2f" strings: $s2 = "Fail To Open Registry" $s3 = "f<-WLEggDr\"" $s6 = "oMemoryCreateP" condition: all of them } rule SetupBDoor { meta: description = "Webshells Auto-generated - file SetupBDoor.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "41f89e20398368e742eda4a3b45716b6" strings: $s1 = "\\BDoor\\SetupBDoor" condition: all of them } rule phpshell_3 { meta: description = "Webshells Auto-generated - file phpshell.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "e8693a2d4a2ffea4df03bb678df3dc6d" strings: $s3 = "<input name=\"submit_btn\" type=\"submit\" value=\"Execute Command\"></p>" $s5 = " echo \"<option value=\\\"$work_dir\\\" selected>Current Directory</option>\\n\";" condition: all of them } rule BIN_Server { meta: description = "Webshells Auto-generated - file Server.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "1d5aa9cbf1429bb5b8bf600335916dcd" strings: $s0 = "configserver" $s1 = "GetLogicalDrives" $s2 = "WinExec" $s4 = "fxftest" $s5 = "upfileok" $s7 = "upfileer" condition: all of them } rule HYTop2006_rar_Folder_2006 { meta: description = "Webshells Auto-generated - file 2006.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "c19d6f4e069188f19b08fa94d44bc283" strings: $s6 = "strBackDoor = strBackDoor " condition: all of them } rule r57shell_3 { meta: description = "Webshells Auto-generated - file r57shell.php" author = "Yara Bulk Rule Generator by Florian Roth" hash = "87995a49f275b6b75abe2521e03ac2c0" strings: $s1 = "<b>\".$_POST['cmd']" condition: all of them } rule HDConfig { meta: description = "Webshells Auto-generated - file HDConfig.exe" author = "Yara Bulk Rule Generator by Florian Roth" hash = "7d60e552fdca57642fd30462416347bd" strings: $s0 = "An encryption key is derived from the password hash. " $s3 = "A hash object has been created. " $s4 = "Error during CryptCreateHash!" $s5 = "A new key container has been created." $s6 = "The password has been added to the hash. " condition: all of them } rule FSO_s_ajan_2 { meta: description = "Webshells Auto-generated - file ajan.asp" author = "Yara Bulk Rule Generator by Florian Roth" hash = "22194f8c44524f80254e1b5aec67b03e" strings: $s2 = "\"Set WshShell = CreateObject(\"\"WScript.Shell\"\")" $s3 = "/file.zip" condition: all of them } rule Webshell_and_Exploit_CN_APT_HK : Webshell { meta: author = "Florian Roth" description = "Webshell and Exploit Code in relation with APT against Honk Kong protesters" date = "10.10.2014" score = 50 strings: $a0 = "<script language=javascript src=http://java-se.com/o.js</script>" fullword $s0 = "<span style=\"font:11px Verdana;\">Password: </span><input name=\"password\" type=\"password\" size=\"20\">" $s1 = "<input type=\"hidden\" name=\"doing\" value=\"login\">" condition: $a0 or ( all of ($s*) ) } rule JSP_Browser_APT_webshell { meta: description = "VonLoesch JSP Browser used as web shell by APT groups - jsp File browser 1.1a" author = "F.Roth" date = "10.10.2014" score = 60 strings: $a1a = "private static final String[] COMMAND_INTERPRETER = {\"" ascii $a1b = "cmd\", \"/C\"}; // Dos,Windows" ascii $a2 = "Process ls_proc = Runtime.getRuntime().exec(comm, null, new File(dir));" ascii $a3 = "ret.append(\"!!!! Process has timed out, destroyed !!!!!\");" ascii condition: all of them } rule JSP_jfigueiredo_APT_webshell { meta: description = "JSP Browser used as web shell by APT groups - author: jfigueiredo" author = "F.Roth" date = "12.10.2014" score = 60 reference = "http://ceso.googlecode.com/svn/web/bko/filemanager/Browser.jsp" strings: $a1 = "String fhidden = new String(Base64.encodeBase64(path.getBytes()));" ascii $a2 = "<form id=\"upload\" name=\"upload\" action=\"ServFMUpload\" method=\"POST\" enctype=\"multipart/form-data\">" ascii condition: all of them } rule JSP_jfigueiredo_APT_webshell_2 { meta: description = "JSP Browser used as web shell by APT groups - author: jfigueiredo" author = "F.Roth" date = "12.10.2014" score = 60 reference = "http://ceso.googlecode.com/svn/web/bko/filemanager/" strings: $a1 = "<div id=\"bkorotator\"><img alt=\"\" src=\"images/rotator/1.jpg\"></div>" ascii $a2 = "$(\"#dialog\").dialog(\"destroy\");" ascii $s1 = "<form id=\"form\" action=\"ServFMUpload\" method=\"post\" enctype=\"multipart/form-data\">" ascii $s2 = "<input type=\"hidden\" id=\"fhidden\" name=\"fhidden\" value=\"L3BkZi8=\" />" ascii condition: all of ($a*) or all of ($s*) } rule AJAX_FileUpload_webshell { meta: description = "AJAX JS/CSS components providing web shell by APT groups" author = "F.Roth" date = "12.10.2014" score = 75 reference = "http://ceso.googlecode.com/svn/web/bko/filemanager/ajaxfileupload.js" strings: $a1 = "var frameId = 'jUploadFrame' + id;" ascii $a2 = "var form = jQuery('<form action=\"\" method=\"POST\" name=\"' + formId + '\" id=\"' + formId + '\" enctype=\"multipart/form-data\"></form>');" ascii $a3 = "jQuery(\"<div>\").html(data).evalScripts();" ascii condition: all of them } rule Webshell_Insomnia { meta: description = "Insomnia Webshell - file InsomniaShell.aspx" author = "Florian Roth" reference = "http://www.darknet.org.uk/2014/12/insomniashell-asp-net-reverse-shell-bind-shell/" date = "2014/12/09" hash = "e0cfb2ffaa1491aeaf7d3b4ee840f72d42919d22" score = 80 strings: $s0 = "Response.Write(\"- Failed to create named pipe:\");" fullword ascii $s1 = "Response.Output.Write(\"+ Sending {0}<br>\", command);" fullword ascii $s2 = "String command = \"exec master..xp_cmdshell 'dir > \\\\\\\\127.0.0.1" ascii $s3 = "Response.Write(\"- Error Getting User Info<br>\");" fullword ascii $s4 = "string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes," fullword ascii $s5 = "[DllImport(\"Advapi32.dll\", SetLastError = true)]" fullword ascii $s9 = "username = DumpAccountSid(tokUser.User.Sid);" fullword ascii $s14 = "//Response.Output.Write(\"Opened process PID: {0} : {1}<br>\", p" ascii condition: 3 of them } rule HawkEye_PHP_Panel { meta: description = "Detects HawkEye Keyloggers PHP Panel" author = "Florian Roth" date = "2014/12/14" score = 60 strings: $s0 = "$fname = $_GET['fname'];" ascii fullword $s1 = "$data = $_GET['data'];" ascii fullword $s2 = "unlink($fname);" ascii fullword $s3 = "echo \"Success\";" fullword ascii condition: all of ($s*) and filesize < 600 } rule SoakSoak_Infected_Wordpress { meta: description = "Detects a SoakSoak infected Wordpress site http://goo.gl/1GzWUX" reference = "http://goo.gl/1GzWUX" author = "Florian Roth" date = "2014/12/15" score = 60 strings: $s0 = "wp_enqueue_script(\"swfobject\");" ascii fullword $s1 = "function FuncQueueObject()" ascii fullword $s2 = "add_action(\"wp_enqueue_scripts\", 'FuncQueueObject');" ascii fullword condition: all of ($s*) } rule Pastebin_Webshell { meta: description = "Detects a web shell that downloads content from pastebin.com http://goo.gl/7dbyZs" author = "Florian Roth" score = 70 date = "13.01.2015" reference = "http://goo.gl/7dbyZs" strings: $s0 = "file_get_contents(\"http://pastebin.com" ascii $s1 = "xcurl('http://pastebin.com/download.php" ascii $s2 = "xcurl('http://pastebin.com/raw.php" ascii $x0 = "if($content){unlink('evex.php');" ascii $x1 = "$fh2 = fopen(\"evex.php\", 'a');" ascii $y0 = "file_put_contents($pth" ascii $y1 = "echo \"<login_ok>" ascii $y2 = "str_replace('* @package Wordpress',$temp" ascii condition: 1 of ($s*) or all of ($x*) or all of ($y*) } rule ASPXspy2 { meta: description = "Web shell - file ASPXspy2.aspx" author = "Florian Roth" reference = "not set" date = "2015/01/24" hash = "5642387d92139bfe9ae11bfef6bfe0081dcea197" strings: $s0 = "string iVDT=\"-SETUSERSETUP\\r\\n-IP=0.0.0.0\\r\\n-PortNo=52521\\r\\n-User=bin" ascii $s1 = "SQLExec : <asp:DropDownList runat=\"server\" ID=\"FGEy\" AutoPostBack=\"True\" O" ascii $s3 = "Process[] p=Process.GetProcesses();" fullword ascii $s4 = "Response.Cookies.Add(new HttpCookie(vbhLn,Password));" fullword ascii $s5 = "[DllImport(\"kernel32.dll\",EntryPoint=\"GetDriveTypeA\")]" fullword ascii $s6 = "<p>ConnString : <asp:TextBox id=\"MasR\" style=\"width:70%;margin:0 8px;\" CssCl" ascii $s7 = "ServiceController[] kQmRu=System.ServiceProcess.ServiceController.GetServices();" fullword ascii $s8 = "Copyright © 2009 Bin -- <a href=\"http://www.rootkit.net.cn\" target=\"_bla" ascii $s10 = "Response.AddHeader(\"Content-Disposition\",\"attachment;filename=\"+HttpUtility." ascii $s11 = "nxeDR.Command+=new CommandEventHandler(this.iVk);" fullword ascii $s12 = "<%@ import Namespace=\"System.ServiceProcess\"%>" fullword ascii $s13 = "foreach(string innerSubKey in sk.GetSubKeyNames())" fullword ascii $s17 = "Response.Redirect(\"http://www.rootkit.net.cn\");" fullword ascii $s20 = "else if(Reg_Path.StartsWith(\"HKEY_USERS\"))" fullword ascii condition: 6 of them } /* Yara Rule Set Author: Florian Roth Date: 2016-01-11 Identifier: Web Shell Repo Reference: https://github.com/nikicat/web-malware-collection */ rule Webshell_27_9_c66_c99 { meta: description = "Detects Webshell - rule generated from from files 27.9.txt, c66.php, c99-shadows-mod.php, c99.php ..." author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "2b8aed49f50acd0c1b89a399647e1218f2a8545da96631ac0882da28810eecc4" hash2 = "5d7709a33879d1060a6cff5bae119de7d5a3c17f65415822fd125af56696778c" hash3 = "c377f9316a4c953602879eb8af1fd7cbb0dd35de6bb4747fa911234082c45596" hash4 = "80ec7831ae888d5603ed28d81225ed8b256c831077bb8feb235e0a1a9b68b748" hash5 = "6ce99e07aa98ba6dc521c34cf16fbd89654d0ba59194878dffca857a4c34e57b" hash6 = "383d771b55bbe5343bab946fd7650fd42de1933c4c8f32449d9a40c898444ef1" hash7 = "07f9ec716fb199e00a90091ffba4c2ee1a328a093a64e610e51ab9dd6d33357a" hash8 = "615e768522447558970c725909e064558f33d38e6402c63c92a1a8bc62b64966" hash9 = "ef3a7cd233a880fc61efc3884f127dd8944808babd1203be2400144119b6057f" hash10 = "a4db77895228f02ea17ff48976e03100ddfaef7c9f48c1d40462872f103451d5" strings: $s4 = "if (!empty($unset_surl)) {setcookie(\"c99sh_surl\"); $surl = \"\";}" fullword ascii $s6 = "@extract($_REQUEST[\"c99shcook\"]);" fullword ascii $s7 = "if (!function_exists(\"c99_buff_prepare\"))" fullword ascii condition: filesize < 685KB and 1 of them } rule Webshell_acid_AntiSecShell_3 { meta: description = "Detects Webshell Acid" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "2b8aed49f50acd0c1b89a399647e1218f2a8545da96631ac0882da28810eecc4" hash2 = "7a69466dbd18182ce7da5d9d1a9447228dcebd365e0fe855d0e02024f4117549" hash3 = "0202f72b3e8b62e5ebc99164c7d4eb8ec5be6a7527286e9059184aa8321e0092" hash4 = "d4424c61fe29d2ee3d8503f7d65feb48341ac2fc0049119f83074950e41194d5" hash5 = "5d7709a33879d1060a6cff5bae119de7d5a3c17f65415822fd125af56696778c" hash6 = "21dd06ec423f0b49732e4289222864dcc055967922d0fcec901d38a57ed77f06" hash7 = "c377f9316a4c953602879eb8af1fd7cbb0dd35de6bb4747fa911234082c45596" hash8 = "816e699014be9a6d02d5d184eb958c49469d687b7c6fb88e878bca64688a19c9" hash9 = "383d771b55bbe5343bab946fd7650fd42de1933c4c8f32449d9a40c898444ef1" hash10 = "07f9ec716fb199e00a90091ffba4c2ee1a328a093a64e610e51ab9dd6d33357a" hash11 = "615e768522447558970c725909e064558f33d38e6402c63c92a1a8bc62b64966" hash12 = "bbe0f7278041cb3a6338844aa12c3df6b700a12a78b0a58bce3dce14f1c37b96" hash13 = "d0edca7539ef2d30f0b3189b21a779c95b5815c1637829b5594e2601e77cb4dc" hash14 = "65e7edf10ffb355bed81b7413c77d13d592f63d39e95948cdaea4ea0a376d791" hash15 = "ef3a7cd233a880fc61efc3884f127dd8944808babd1203be2400144119b6057f" hash16 = "ba87d26340f799e65c771ccb940081838afe318ecb20ee543f32d32db8533e7f" hash17 = "a4db77895228f02ea17ff48976e03100ddfaef7c9f48c1d40462872f103451d5" hash18 = "1fdf6e142135a34ae1caf1d84adf5e273b253ca46c409b2530ca06d65a55ecbd" strings: $s0 = "echo \"<option value=delete\".($dspact == \"delete\"?\" selected\":\"\").\">Delete</option>\";" fullword ascii $s1 = "if (!is_readable($o)) {return \"<font color=red>\".view_perms(fileperms($o)).\"</font>\";}" fullword ascii condition: filesize < 900KB and all of them } rule Webshell_c99_4 { meta: description = "Detects C99 Webshell" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "2b8aed49f50acd0c1b89a399647e1218f2a8545da96631ac0882da28810eecc4" hash2 = "0202f72b3e8b62e5ebc99164c7d4eb8ec5be6a7527286e9059184aa8321e0092" hash3 = "d4424c61fe29d2ee3d8503f7d65feb48341ac2fc0049119f83074950e41194d5" hash4 = "5d7709a33879d1060a6cff5bae119de7d5a3c17f65415822fd125af56696778c" hash5 = "21dd06ec423f0b49732e4289222864dcc055967922d0fcec901d38a57ed77f06" hash6 = "c377f9316a4c953602879eb8af1fd7cbb0dd35de6bb4747fa911234082c45596" hash7 = "816e699014be9a6d02d5d184eb958c49469d687b7c6fb88e878bca64688a19c9" hash8 = "383d771b55bbe5343bab946fd7650fd42de1933c4c8f32449d9a40c898444ef1" hash9 = "07f9ec716fb199e00a90091ffba4c2ee1a328a093a64e610e51ab9dd6d33357a" hash10 = "615e768522447558970c725909e064558f33d38e6402c63c92a1a8bc62b64966" hash11 = "bbe0f7278041cb3a6338844aa12c3df6b700a12a78b0a58bce3dce14f1c37b96" hash12 = "ef3a7cd233a880fc61efc3884f127dd8944808babd1203be2400144119b6057f" hash13 = "a4db77895228f02ea17ff48976e03100ddfaef7c9f48c1d40462872f103451d5" hash14 = "1fdf6e142135a34ae1caf1d84adf5e273b253ca46c409b2530ca06d65a55ecbd" strings: $s1 = "displaysecinfo(\"List of Attributes\",myshellexec(\"lsattr -a\"));" fullword ascii $s2 = "displaysecinfo(\"RAM\",myshellexec(\"free -m\"));" fullword ascii $s3 = "displaysecinfo(\"Where is perl?\",myshellexec(\"whereis perl\"));" fullword ascii $s4 = "$ret = myshellexec($handler);" fullword ascii $s5 = "if (posix_kill($pid,$sig)) {echo \"OK.\";}" fullword ascii condition: filesize < 900KB and 1 of them } rule Webshell_r57shell_2 { meta: description = "Detects Webshell R57" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "e46777e5f1ac1652db3ce72dd0a2475ea515b37a737fffd743126772525a47e6" hash2 = "aa957ca4154b7816093d667873cf6bdaded03f820e84d8f1cd5ad75296dd5d4d" hash3 = "aa957ca4154b7816093d667873cf6bdaded03f820e84d8f1cd5ad75296dd5d4d" hash4 = "756b788401aad4bfd4dbafd15c382d98e3ba079390addb5b0cea7ff7f985f881" hash5 = "756b788401aad4bfd4dbafd15c382d98e3ba079390addb5b0cea7ff7f985f881" hash6 = "16b6ec4b80f404f4616e44d8c21978dcdad9f52c84d23ba27660ee8e00984ff2" hash7 = "59105e4623433d5bf93b9e17d72a43a40a4d8ac99e4a703f1d8851ad1276cd88" hash8 = "1db0549066f294f814ec14ba4e9f63d88c4460d68477e5895236173df437d2b8" hash9 = "c6a5148c81411ec9200810619fa5eec6616800a4d76c988431c272bc8679254f" hash10 = "c6a5148c81411ec9200810619fa5eec6616800a4d76c988431c272bc8679254f" hash11 = "59ea6cf16ea06ff47cf0e6a398df2eaec4d329707b8c3201fc63cbf0b7c85519" hash12 = "0e0227a0001b38fb59fc07749e80c9d298ff0e6aca126ea8f4ea68ebc9a3661f" hash13 = "ef74644065925aa8d64913f5f124fe73d8d289d5f019a104bf5f56689f49ba92" strings: $s1 = "$connection = @ftp_connect($ftp_server,$ftp_port,10);" fullword ascii $s2 = "echo $lang[$language.'_text98'].$suc.\"\\r\\n\";" fullword ascii condition: filesize < 900KB and all of them } rule Webshell_27_9_acid_c99_locus7s { meta: description = "Detects Webshell - rule generated from from files 27.9.txt, acid.php, c99_locus7s.txt" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "2b8aed49f50acd0c1b89a399647e1218f2a8545da96631ac0882da28810eecc4" hash2 = "7a69466dbd18182ce7da5d9d1a9447228dcebd365e0fe855d0e02024f4117549" hash3 = "960feb502f913adff6b322bc9815543e5888bbf9058ba0eb46ceb1773ea67668" hash4 = "07f9ec716fb199e00a90091ffba4c2ee1a328a093a64e610e51ab9dd6d33357a" hash5 = "bbe0f7278041cb3a6338844aa12c3df6b700a12a78b0a58bce3dce14f1c37b96" hash6 = "5ae121f868555fba112ca2b1a9729d4414e795c39d14af9e599ce1f0e4e445d3" hash7 = "ef3a7cd233a880fc61efc3884f127dd8944808babd1203be2400144119b6057f" hash8 = "ba87d26340f799e65c771ccb940081838afe318ecb20ee543f32d32db8533e7f" strings: $s0 = "$blah = ex($p2.\" /tmp/back \".$_POST['backconnectip'].\" \".$_POST['backconnectport'].\" &\");" fullword ascii $s1 = "$_POST['backcconnmsge']=\"</br></br><b><font color=red size=3>Error:</font> Can't backdoor host!</b>\";" fullword ascii condition: filesize < 1711KB and 1 of them } rule Webshell_Backdoor_PHP_Agent_r57_mod_bizzz_shell_r57 { meta: description = "Detects Webshell - rule generated from from files Backdoor.PHP.Agent.php, r57.mod-bizzz.shell.txt ..." author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "e46777e5f1ac1652db3ce72dd0a2475ea515b37a737fffd743126772525a47e6" hash2 = "f51a5c5775d9cca0b137ddb28ff3831f4f394b7af6f6a868797b0df3dcdb01ba" hash3 = "16b6ec4b80f404f4616e44d8c21978dcdad9f52c84d23ba27660ee8e00984ff2" hash4 = "59105e4623433d5bf93b9e17d72a43a40a4d8ac99e4a703f1d8851ad1276cd88" hash5 = "6dc417db9e07420a618d44217932ca8baf3541c08d5e68281e1be10af4280e4a" hash6 = "5d07fdfee2dc6d81da26f05028f79badd10dec066909932129d398627b2f4e94" hash7 = "1db0549066f294f814ec14ba4e9f63d88c4460d68477e5895236173df437d2b8" hash8 = "c6a5148c81411ec9200810619fa5eec6616800a4d76c988431c272bc8679254f" hash9 = "59ea6cf16ea06ff47cf0e6a398df2eaec4d329707b8c3201fc63cbf0b7c85519" hash10 = "0e0227a0001b38fb59fc07749e80c9d298ff0e6aca126ea8f4ea68ebc9a3661f" hash11 = "ef74644065925aa8d64913f5f124fe73d8d289d5f019a104bf5f56689f49ba92" strings: $s1 = "$_POST['cmd'] = which('" ascii $s2 = "$blah = ex(" fullword ascii condition: filesize < 600KB and all of them } rule Webshell_c100 { meta: description = "Detects Webshell - rule generated from from files c100 v. 777shell" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "0202f72b3e8b62e5ebc99164c7d4eb8ec5be6a7527286e9059184aa8321e0092" hash2 = "d4424c61fe29d2ee3d8503f7d65feb48341ac2fc0049119f83074950e41194d5" hash3 = "21dd06ec423f0b49732e4289222864dcc055967922d0fcec901d38a57ed77f06" hash4 = "c377f9316a4c953602879eb8af1fd7cbb0dd35de6bb4747fa911234082c45596" hash5 = "816e699014be9a6d02d5d184eb958c49469d687b7c6fb88e878bca64688a19c9" hash6 = "bbe0f7278041cb3a6338844aa12c3df6b700a12a78b0a58bce3dce14f1c37b96" hash7 = "ef3a7cd233a880fc61efc3884f127dd8944808babd1203be2400144119b6057f" strings: $s0 = "<OPTION VALUE=\"wget http://ftp.powernet.com.tr/supermail/debug/k3\">Kernel attack (Krad.c) PT1 (If wget installed)" fullword ascii $s1 = "<center>Kernel Info: <form name=\"form1\" method=\"post\" action=\"http://google.com/search\">" fullword ascii $s3 = "cut -d: -f1,2,3 /etc/passwd | grep ::" ascii $s4 = "which wget curl w3m lynx" ascii $s6 = "netstat -atup | grep IST" ascii condition: filesize < 685KB and 2 of them } rule Webshell_AcidPoison { meta: description = "Detects Poison Sh3ll - Webshell" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "7a69466dbd18182ce7da5d9d1a9447228dcebd365e0fe855d0e02024f4117549" hash2 = "7a69466dbd18182ce7da5d9d1a9447228dcebd365e0fe855d0e02024f4117549" hash3 = "d0edca7539ef2d30f0b3189b21a779c95b5815c1637829b5594e2601e77cb4dc" hash4 = "d0edca7539ef2d30f0b3189b21a779c95b5815c1637829b5594e2601e77cb4dc" hash5 = "65e7edf10ffb355bed81b7413c77d13d592f63d39e95948cdaea4ea0a376d791" hash6 = "65e7edf10ffb355bed81b7413c77d13d592f63d39e95948cdaea4ea0a376d791" hash7 = "be541cf880a8e389a0767b85f1686443f35b508d1975ee25e1ce3f08fa32cfb5" hash8 = "be541cf880a8e389a0767b85f1686443f35b508d1975ee25e1ce3f08fa32cfb5" hash9 = "ba87d26340f799e65c771ccb940081838afe318ecb20ee543f32d32db8533e7f" hash10 = "ba87d26340f799e65c771ccb940081838afe318ecb20ee543f32d32db8533e7f" strings: $s1 = "elseif ( enabled(\"exec\") ) { exec($cmd,$o); $output = join(\"\\r\\n\",$o); }" fullword ascii condition: filesize < 550KB and all of them } rule Webshell_acid_FaTaLisTiCz_Fx_fx_p0isoN_sh3ll_x0rg_byp4ss_256 { meta: description = "Detects Webshell - rule generated from from files acid.php, FaTaLisTiCz_Fx.txt, fx.txt, p0isoN.sh3ll.txt, x0rg.byp4ss.txt" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "7a69466dbd18182ce7da5d9d1a9447228dcebd365e0fe855d0e02024f4117549" hash2 = "d0edca7539ef2d30f0b3189b21a779c95b5815c1637829b5594e2601e77cb4dc" hash3 = "65e7edf10ffb355bed81b7413c77d13d592f63d39e95948cdaea4ea0a376d791" hash4 = "ba87d26340f799e65c771ccb940081838afe318ecb20ee543f32d32db8533e7f" hash5 = "1fdf6e142135a34ae1caf1d84adf5e273b253ca46c409b2530ca06d65a55ecbd" strings: $s0 = "<form method=\"POST\"><input type=hidden name=act value=\"ls\">" fullword ascii $s2 = "foreach($quicklaunch2 as $item) {" fullword ascii condition: filesize < 882KB and all of them } rule Webshell_Ayyildiz { meta: description = "Detects Webshell - rule generated from from files Ayyildiz Tim -AYT- Shell v 2.1 Biz.txt, Macker's Private PHPShell.php, matamu.txt, myshell.txt, PHP Shell.txt" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "0e25aec0a9131e8c7bd7d5004c5c5ffad0e3297f386675bccc07f6ea527dded5" hash2 = "9c43aada0d5429f8c47595f79a7cdd5d4eb2ba5c559fb5da5a518a6c8c7c330a" hash3 = "2ebf3e5f5dde4a27bbd60e15c464e08245a35d15cc370b4be6b011aa7a46eaca" hash4 = "77a63b26f52ba341dd2f5e8bbf5daf05ebbdef6b3f7e81cec44ce97680e820f9" hash5 = "61c4fcb6e788c0dffcf0b672ae42b1676f8a9beaa6ec7453fc59ad821a4a8127" strings: $s0 = "echo \"<option value=\\\"\". strrev(substr(strstr(strrev($work_dir), \"/\"), 1)) .\"\\\">Parent Directory</option>\\n\";" fullword ascii $s1 = "echo \"<option value=\\\"$work_dir\\\" selected>Current Directory</option>\\n\";" fullword ascii condition: filesize < 112KB and all of them } rule Webshell_zehir { meta: description = "Detects Webshell - rule generated from from files elmaliseker.asp, zehir.asp, zehir.txt, zehir4.asp, zehir4.txt" author = "Florian Roth" reference = "https://github.com/nikicat/web-malware-collection" date = "2016-01-11" score = 70 hash1 = "16e1e886576d0c70af0f96e3ccedfd2e72b8b7640f817c08a82b95ff5d4b1218" hash2 = "0c5f8a2ed62d10986a2dd39f52886c0900a18c03d6d279207b8de8e2ed14adf6" hash3 = "cb9d5427a83a0fc887e49f07f20849985bd2c3850f272ae1e059a08ac411ff66" hash4 = "b57bf397984545f419045391b56dcaf7b0bed8b6ee331b5c46cee35c92ffa13d" hash5 = "febf37a9e8ba8ece863f506ae32ad398115106cc849a9954cbc0277474cdba5c" strings: $s1 = "for (i=1; i<=frmUpload.max.value; i++) str+='File '+i+': <input type=file name=file'+i+'><br>';" fullword ascii $s2 = "if (frmUpload.max.value<=0) frmUpload.max.value=1;" fullword ascii condition: filesize < 200KB and 1 of them } ================================================ FILE: rules/xunjian.yar ================================================ /* shuoshuren 2020.9.7 */ include "./malware/MALW_BackdoorSSH.yar" include "./malware/MALW_BlackRev.yar" include "./malware/MALW_PE_sections.yar" include "./webshells/WShell_APT_Laudanum.yar" include "./webshells/WShell_ASPXSpy.yar" include "./webshells/WShell_Drupalgeddon2_icos.yar" include "./webshells/WShell_PHP_Anuna.yar" include "./webshells/WShell_PHP_in_images.yar" include "./webshells/WShell_THOR_Webshells.yar" include "./utils/wget.yar" include "./malware/ddg.yar" include "./malware/h2miner.yar" include "./malware/lsdminer.yar" include "./malware/rainbowminer.yar" include "./malware/skipmap.yar" include "./malware/startminer.yar" include "./malware/sysupdataminer.yar" include "./malware/teamtnt.yar" include "./malware/watchbogminer.yar" ================================================ FILE: whohk.py ================================================ # -*- coding:utf-8 -*- - import os import re import time import psutil import yara import sys import socket import struct import prettytable as pt import argparse # 检查是否root运行 def checkroot(): if os.popen("whoami").read() != 'root\n': print('[\033[1;33mwaring\033[0m]检测到当前为非root权限,部分功能可能受限哦~') def system_state(): # 系统状态 cpu = '{}{}'.format(str(psutil.cpu_percent(1)), '%') mem = '{}{}'.format(str(psutil.virtual_memory()[2]), '%') disk = '{}{}'.format(psutil.disk_usage('/')[3], '%') login=os.popen("who").read() system_state = pt.PrettyTable() system_state.field_names = ['CPU', 'MEM', 'DISK','ONLINE'] system_state.add_row([cpu, mem, disk,login.replace(' ',' ').replace(' ',' ')]) return system_state ########查外连模块############# class CzIp: # 读取解析纯真IP数据库的类 def __init__(self, db_file='config/qqwry.dat'): self.f_db = open(db_file, "rb") bs = self.f_db.read(8) (self.first_index, self.last_index) = struct.unpack('II', bs) self.index_count = int((self.last_index - self.first_index) / 7 + 1) self.cur_start_ip = None self.cur_end_ip_offset = None self.cur_end_ip = None def _get_area_addr(self, offset=0): if offset: self.f_db.seek(offset) bs = self.f_db.read(1) (byte,) = struct.unpack('B', bs) if byte == 0x01 or byte == 0x02: p = self.getLong3() if p: return self.get_offset_string(p) else: return "" else: self.f_db.seek(-1, 1) return self.get_offset_string(offset) def _get_addr(self, offset): ''' 获取offset处记录区地址信息(包含国家和地区) 如果是中国ip,则是 "xx省xx市 xxxxx地区" 这样的形式 (比如:"福建省 电信", "澳大利亚 墨尔本Goldenit有限公司") :param offset: :return:str ''' self.f_db.seek(offset + 4) bs = self.f_db.read(1) (byte,) = struct.unpack('B', bs) if byte == 0x01: # 重定向模式1 country_offset = self.getLong3() self.f_db.seek(country_offset) bs = self.f_db.read(1) (b,) = struct.unpack('B', bs) if b == 0x02: country_addr = self.get_offset_string(self.getLong3()) self.f_db.seek(country_offset + 4) else: country_addr = self.get_offset_string(country_offset) area_addr = self._get_area_addr() elif byte == 0x02: # 重定向模式2 country_addr = self.get_offset_string(self.getLong3()) area_addr = self._get_area_addr(offset + 8) else: # 字符串模式 country_addr = self.get_offset_string(offset + 4) area_addr = self._get_area_addr() return country_addr + " " + area_addr def dump(self, first, last): ''' 打印数据库中索引为first到索引为last(不包含last)的记录 :param first: :param last: :return: ''' if last > self.index_count: last = self.index_count for index in range(first, last): offset = self.first_index + index * 7 self.f_db.seek(offset) buf = self.f_db.read(7) (ip, of1, of2) = struct.unpack("IHB", buf) address = self._get_addr(of1 + (of2 << 16)) def _set_ip_range(self, index): offset = self.first_index + index * 7 self.f_db.seek(offset) buf = self.f_db.read(7) (self.cur_start_ip, of1, of2) = struct.unpack("IHB", buf) self.cur_end_ip_offset = of1 + (of2 << 16) self.f_db.seek(self.cur_end_ip_offset) buf = self.f_db.read(4) (self.cur_end_ip,) = struct.unpack("I", buf) def get_addr_by_ip(self, ip): ''' 通过ip查找其地址 :param ip: (int or str) :return: str ''' if type(ip) == str: ip = self.str2ip(ip) L = 0 R = self.index_count - 1 while L < R - 1: M = int((L + R) / 2) self._set_ip_range(M) if ip == self.cur_start_ip: L = M break if ip > self.cur_start_ip: L = M else: R = M self._set_ip_range(L) # version information, 255.255.255.X, urgy but useful if ip & 0xffffff00 == 0xffffff00: self._set_ip_range(R) if self.cur_start_ip <= ip <= self.cur_end_ip: address = self._get_addr(self.cur_end_ip_offset) else: address = "未找到该IP的地址" return address def get_ip_range(self, ip): ''' 返回ip所在记录的IP段 :param ip: ip(str or int) :return: str ''' if type(ip) == str: ip = self.str2ip(ip) self.get_addr_by_ip(ip) range = self.ip2str(self.cur_start_ip) + ' - ' \ + self.ip2str(self.cur_end_ip) return range def get_offset_string(self, offset=0): ''' 获取文件偏移处的字符串(以'\0'结尾) :param offset: 偏移 :return: str ''' if offset: self.f_db.seek(offset) bs = b'' ch = self.f_db.read(1) (byte,) = struct.unpack('B', ch) while byte != 0: bs += ch ch = self.f_db.read(1) (byte,) = struct.unpack('B', ch) return bs.decode('gbk') def ip2str(self, ip): ''' 整数IP转化为IP字符串 :param ip: :return: ''' return str(ip >> 24) + '.' + str((ip >> 16) & 0xff) + '.' + str((ip >> 8) & 0xff) + '.' + str(ip & 0xff) def str2ip(self, s): ''' IP字符串转换为整数IP :param s: :return: ''' (ip,) = struct.unpack('I', socket.inet_aton(s)) return ((ip >> 24) & 0xff) | ((ip & 0xff) << 24) | ((ip >> 8) & 0xff00) | ((ip & 0xff00) << 8) def getLong3(self, offset=0): ''' 3字节的数值 :param offset: :return: ''' if offset: self.f_db.seek(offset) bs = self.f_db.read(3) (a, b) = struct.unpack('HB', bs) return (b << 16) + a def network(): # 获取对外网络连接情况 addr_list = str(psutil.net_connections()).split('sconn') iptb = pt.PrettyTable() iptb.field_names = ['进程名', 'IP', '端口', 'PID', '归属地址'] for addr in addr_list: try: if re.findall(r'raddr', addr) != []: # 如果存在远程地址,就取出来 remote = addr.split('raddr')[-1] local = addr.split('laddr')[-1] ip = re.findall(r'ip=\'(.+?)\'', remote)[0] port = re.findall(r'port=(.+?)\)', local)[0] pid = re.findall(r'pid=(.+?)\)', remote)[0] process = psutil.Process(int(pid)).name() if ip != '127.0.0.1' and ip != '::1': IP_addr = CzIp().get_addr_by_ip(ip) iptb.add_row([process, ip, port, pid, IP_addr]) except: pass network = iptb return network ################日志分析模块##################### def ostype(): # 判断系统类型和版本 try: os_info = os.popen("cat /proc/version").read() sysnum = int(re.findall(r' (\d+?)\.', os_info, re.S)[0]) # 取出版本号 system = '' try: system = re.search('CentOS', os_info).group() except: pass try: system = re.search('Ubuntu', os_info).group() except: pass try: system = re.search('openSUSE', os_info).group() except: pass try: system = re.search('Red Hat', os_info).group() except: pass try: system = re.search('Debian', os_info).group() except: pass except: print('\033[1;33m提示:系统类型获取失败,请手动输入系统类型和版本号\033[0m') print("\033[1;33m系统类型只能'CentOS','Ubuntu','openSUSE','Red Hat','Debian' 其中一个,注意空格和大小写,输入其他无效\033[0m") print("\033[1;33m版本号请输入整数,如:6\033[0m") system = input('系统类型:') sysnum = int(input('版本号:')) return system, sysnum def pid_fileinfo(pid): # 根据pid获取进程路径等信息 fileinfo = os.popen("ls -all /proc/{} |grep \"exe ->\"".format(pid)).read() return fileinfo def log_burp_ip(system): # 定位有哪些IP在爆破 burp_ip = "" if system == 'CentOS' or system == 'Red Hat': burp_ip = os.popen( "grep \"Failed\" /var/log/secure*|grep -E -o \"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\"|uniq -c").read() elif system == 'Ubuntu' or system == 'Debian': burp_ip = os.popen( "grep \"Failed\" /var/log/auth.log*|grep -E -o \"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\"|uniq -c").read() elif system == 'openSUSE': burp_ip = os.popen( "grep \"Failed\" /var/log/messages*|grep -E -o \"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\"|uniq -c").read() return burp_ip def log_burp_user(system): # 被爆破用户名是什么 burp_user = '' if system == 'CentOS' or system == 'Red Hat': burp_user = os.popen( "grep \"Failed\" /var/log/secure*|perl -e 'while($_=<>){ /for(.*?) from/; print \"$1\n\";}'|uniq -c|sort -nr").read() elif system == 'Ubuntu' or system == 'Debian': burp_user = os.popen( "grep \"Failed\" /var/log/auth.log*|perl -e 'while($_=<>){ /for(.*?) from/; print \"$1\n\";}'|uniq -c|sort -nr").read() elif system == 'openSUSE': burp_user = os.popen( "grep \"Failed\" /var/log/messages*|perl -e 'while($_=<>){ /for(.*?) from/; print \"$1\n\";}'|uniq -c|sort -nr").read() return burp_user def log_success_ip(system): # 登录成功的 IP 有哪些 success_ip = '' if system == 'CentOS' or system == 'Red Hat': success_ip = os.popen( "grep \"Accepted \" /var/log/secure* | awk '{print $11}' | sort | uniq -c | sort -nr | more").read() elif system == 'Ubuntu' or system == 'Debian': success_ip = os.popen( "grep \"Accepted \" /var/log/auth.log* | awk '{print $11}' | sort | uniq -c | sort -nr | more").read() elif system == 'openSUSE': success_ip = os.popen( "grep \"Accepted \" /var/log/messages* | awk '{print $11}' | sort | uniq -c | sort -nr | more").read() return success_ip def log_success_info(system): # 登录成功的日期、用户名、IP success_info = '' if system == 'CentOS' or system == 'Red Hat': success_info = os.popen("grep \"Accepted \" /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'").read() elif system == 'Ubuntu' or system == 'Debian': success_info = os.popen("grep \"Accepted \" /var/log/auth.log* | awk '{print $1,$2,$3,$9,$11}'").read() elif system == 'openSUSE': success_info = os.popen("grep \"Accepted \" /var/log/messages* | awk '{print $1,$2,$3,$9,$11}'").read() return success_info def cron(): # 所有用户的定时任务 cmd = os.popen("cd /var/spool/cron && ls").read() # 直接到定时任务保存的位置看有没有 timingtask_list = re.split(r'\n', cmd) del (timingtask_list[-1]) # 删除最后一个空值 if timingtask_list != []: all_timingtask = '' for user in timingtask_list: path = "cat /var/spool/cron/{0}".format(user) info = os.popen(path).read() timingtask = '\033[1;33m用户【{0}】的定时任务有:\033[0m\n{1}\n'.format(user, info) all_timingtask = all_timingtask + timingtask else: all_timingtask = '\033[1;33m没有定时任务\033[0m' return all_timingtask def cron_file(day): # 按时间检查crontab文件或脚本 cron.d = os.popen("find /etc/cron.d/ -mtime -{}".format(day)).read() cron.hourly = os.popen("find /etc/cron.hourly/ -mtime -{}".format(day)).read() cron.daily = os.popen("find /etc/cron.daily/ -mtime -{}".format(day)).read() cron.weekly = os.popen("find /etc/cron.weekly/ -mtime -{}".format(day)).read() cron.monthly = os.popen("find /etc/cron.monthly/ -mtime -{}".format(day)).read() cron_file_output = "\033[1;33m------------------------------/etc/cron.d/-------------------------------\033[0m\n{}\n\033[1;33m---------------------------/etc/cron.hourly/-----------------------------\033[0m\n{}\n\033[1;33m----------------------------/etc/cron.daily/-----------------------------\033[0m\n{}\n\033[1;33m---------------------------/etc/cron.weekly/-----------------------------\033[0m\n{}\n\033[1;33m---------------------------/etc/cron.monthly/----------------------------\033[0m\n{}\n".format( cron.d, cron.hourly, cron.daily, cron.weekly, cron.monthly) return cron_file_output def starup(day): # 按检查启动项 rc_local = os.popen("cat /etc/rc.local").read() init_d = os.popen("find /etc/init.d/ -mtime -{}".format(day)).read() rc0_d = os.popen("find /etc/rc0.d/ -mtime -{}".format(day)).read() rc1_d = os.popen("find /etc/rc1.d/ -mtime -{}".format(day)).read() rc2_d = os.popen("find /etc/rc2.d/ -mtime -{}".format(day)).read() rc3_d = os.popen("find /etc/rc3.d/ -mtime -{}".format(day)).read() rc4_d = os.popen("find /etc/rc4.d/ -mtime -{}".format(day)).read() rc5_d = os.popen("find /etc/rc5.d/ -mtime -{}".format(day)).read() rc6_d = os.popen("find /etc/rc6.d/ -mtime -{}".format(day)).read() rc_d = os.popen("find /etc/init/rc.d/ -mtime -{}".format(day)).read() starup_output = "\033[1;33m------------------------------/etc/rc.local------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/init.d/------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/rc0.d/-------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/rc1.d/-------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/rc2.d/-------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/rc3.d/-------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/rc4.d/-------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/rc5.d/-------------------------------\033[0m\n{}\n\033[1;33m-------------------------------/etc/rc6.d/-------------------------------\033[0m\n{}\n\033[1;33m-----------------------------/etc/init/rc.d/-----------------------------\033[0m\n".format( rc_local, init_d, rc0_d, rc1_d, rc2_d, rc3_d, rc4_d, rc5_d, rc6_d, rc_d) return starup_output def osfile(day):#查看系统进程是否被劫持 osfile=os.popen("find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -mtime -{}".format(day)).read() return osfile def changefile(all):#查看系统中指定类型文件的修改 changefile=os.popen("find {} -mtime -{} -name \"*.{}\"".format(all[0],all[1],all[2])).read() return changefile def permfile(all):#查看系统中指定权限的文件 permfile=os.popen("find {} -name \"*.{}\" -perm {}".format(all[0],all[1],all[2])).read() return permfile def account_check(): # 检查账户情况 account_list = [] cmd = os.popen("cat /etc/passwd | grep '/bin/bash'").read() user_list = re.split(r'\n', cmd)[:-1] result='' for i in user_list: user=re.findall('(.+?):',i)[0] account_list.append(user) user_info=os.popen("chage --list {}".format(user)).read().replace(' ','') result+="\033[1;33m可登录的账户:\033[0m{0}\n\033[1;33m账户详情:\033[0m\n{1}\n".format(user,user_info) anonymous_account = os.popen("awk -F: 'length($2)==0 {print $1}' /etc/shadow").read() account = '{0}\n\033[1;33m空口令用户:\033[0m\n{1}\n'.format(result, anonymous_account) return account_list,account def history(): history="" user_list=account_check()[0] try: for user in user_list: if user!='root': minggan=os.popen("cat /home/{}/.bash_history |grep -E \"wget|curl|http|rsync|sftp|ssh|scp|rcp|python|java|chmod|ftp|bash|zip|tar\"".format(user)).read() history+="\033[1;33m{}用户下的敏感历史命令:\033[0m\n{}\n".format(user,minggan) else: minggan = os.popen("cat /root/.bash_history |grep -E \"wget|curl|http|rsync|sftp|ssh|scp|rcp|python|java|chmod|ftp|bash|zip|tar\"").read() history += "\033[1;33m{}用户下的敏感历史命令:\033[0m\n{}\n".format(user, minggan) except: pass return history def webshell_scan(path): webshell = pt.PrettyTable() webshell.field_names = ['Path', 'LastChange'] webshell.align["Path"] = "l" # 路径字段靠右显示 rule = yara.compile(filepath=r'rules/webshell.yar') print('\033[1;34m读取待检测文件中...\033[0m') all = os.popen("find " + path).read().split('\n') file_list = [] # 过滤后的文件列表 print('\033[1;32m读取完毕,开始过滤...\033[0m') for file in all: # 过滤掉部分文件 try: fsize = os.path.getsize(file) / float(1024 * 1024) except: fsize = 6 if fsize <= 5: # 只检测小于5M的文件 file_list.append(file) print('\033[1;32m过滤完毕,开始扫描...\033[0m') for i in range(len(file_list)): sys.stdout.write('\033[K' + '\r') print('\r','[{0}/{1}]检测中,耐心等待哦~'.format(str(i), str(len(file_list))),end=' ') try: with open(file_list[i], 'rb') as f: matches = rule.match(data=f.read()) except: matches = [] try: if matches != []: time_chuo = time.localtime(os.path.getmtime(file_list[i])) # 最后修改时间戳 lasttime = time.strftime("%Y--%m--%d %H:%M:%S", time_chuo) # 最后修改时间 warning = ('\033[1;31m\n告警:检测到标签{0},文件位置{1}\033[0m'.format(matches, file_list[i])) webshell.add_row([file_list[i], lasttime]) print(warning) except: pass print('\033[1;32m\n所有文件扫描完成,结果如下:\n\033[0m') print(webshell) def file_scan(path): webshell = pt.PrettyTable() webshell.field_names = ['Path', 'LastChange'] webshell.align["Path"] = "l" # 路径字段靠右显示 rule = yara.compile(filepath=r'rules/xunjian.yar') print('\033[1;34m读取待检测文件中...\033[0m') all = os.popen("find " + path).read().split('\n') file_list = [] # 过滤后的文件列表 print('\033[1;32m读取完毕,开始过滤...\033[0m') for file in all: # 过滤掉部分文件 try: fsize = os.path.getsize(file) / float(1024 * 1024) except: fsize = 6 if fsize <= 5: # 只检测小于5M的文件 file_list.append(file) print('\033[1;32m过滤完毕,开始扫描...\033[0m') for i in range(len(file_list)): sys.stdout.write('\033[K' + '\r') print('\r','[{0}/{1}]检测中,耐心等待哦~'.format(str(i), str(len(file_list))),end=' ') try: with open(file_list[i], 'rb') as f: matches = rule.match(data=f.read()) except: matches = [] try: if matches != []: time_chuo = time.localtime(os.path.getmtime(file_list[i])) # 最后修改时间戳 lasttime = time.strftime("%Y--%m--%d %H:%M:%S", time_chuo) # 最后修改时间 warning = ('\033[1;31m\n告警:检测到标签{0},文件位置{1}\033[0m'.format(matches, file_list[i])) webshell.add_row([file_list[i], lasttime]) print(warning) except: pass print('\033[1;32m\n所有文件扫描完成,结果如下:\n\033[0m') print(webshell) ################################################ parser = argparse.ArgumentParser(description='本工具可帮你快速定位很多关键问题,将化复杂繁琐的命令为简单。\n应急响应工具为辅,但不要只依赖于工具哦') parser.add_argument("-user", action='store_true',help='用于查看系统可登录账户和空口令账户(无参数)') parser.add_argument("-history", action='store_true',help='用于查看所有用户的敏感历史命令(无参数)') parser.add_argument("-cron", action='store_true',help='用于查看所有用户的定时任务(无参数)') parser.add_argument("-ip", action='store_true',help='用于查看外连ip(无参数)') parser.add_argument("--pid", type=str,metavar='1234',help='用于定位进程物理路径(参数为pid号)') parser.add_argument("--ssh-fip", action='store_true',help='用于查看ssh登录失败的ip和次数(无参数)') parser.add_argument("--ssh-fuser", action='store_true',help='用于查看ssh登录失败的用户和次数(无参数)') parser.add_argument("--ssh-sip", action='store_true',help='用于查看ssh登录成功的ip和次数(无参数)') parser.add_argument("--ssh-sinfo", action='store_true',help='用于查看ssh登录成功的用户详情(无参数)') parser.add_argument("--file-cron", type=str,metavar='7',help='用于查看系统各个级别定时任务目录中,n天内被修改的文件(参数为天数)') parser.add_argument("--file-starup", type=str,metavar='7',help='用于查看系统启动项目录中,n天内被修改的文件(参数为天数)') parser.add_argument("--file-os", type=str,metavar='7',help='用于查看系统重要目录中,n天内被修改的文件(参数为天数)') parser.add_argument("--file-change", nargs=3,metavar=('/www', '7', 'php'),help='用于查看在n天内指定目录中指定后缀的被修改的文件(参数为物理路径、天数、后缀)') parser.add_argument("--file-perm", nargs=3,metavar=('/www', 'jsp', '777'),help='用于查看指定目录下指定后缀指定权限的文件(参数为物理路径、后缀、天数)') parser.add_argument("--s-backdoor", type=str,metavar='/home',help='用于检测指定路径下的恶意样本(参数为物理路径)') parser.add_argument("--s-webshell", type=str,metavar='/var/www',help='用于检测指定路径下的webshell(参数为物理路径)') args = parser.parse_args() sys_tup = ostype() # 判断系统类型 system = sys_tup[0] sysnum = sys_tup[1] banner = '''\033[1;34m ██╗ ██╗██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗██╗ ██╗ ██║ ██║██║ ██║██╔═══██╗╚════██╗██║ ██║██║ ██╔╝ ██║ █╗ ██║███████║██║ ██║ ▄███╔╝███████║█████╔╝ ██║███╗██║██╔══██║██║ ██║ ▀▀══╝ ██╔══██║██╔═██╗ ╚███╔███╔╝██║ ██║╚██████╔╝ ██╗ ██║ ██║██║ ██╗ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ 公众号:台下言书 作者:说书人 版本:v1.1\033[0m \033[1;36m-------------------------------系统信息----------------------------------\033[0m {} \033[1;36m-------------------------------output------------------------------------\033[0m '''.format(system_state()) print(banner) checkroot() if args.ip: print(network()) elif args.pid: print(pid_fileinfo(args.pid)) elif args.ssh_fip: print(log_burp_ip(system)) elif args.ssh_fuser: print(log_burp_user(system)) elif args.ssh_sip: print(log_success_ip(system)) elif args.ssh_sinfo: print(log_success_info(system)) elif args.cron: print(cron()) elif args.file_cron: print(cron_file(args.file_cron)) elif args.file_starup: print(starup(args.file_starup)) elif args.file_os: print(osfile(args.file_os)) elif args.file_change: print(changefile(args.file_change)) elif args.file_perm: print(permfile(args.file_perm)) elif args.user: print(account_check()[1]) elif args.history: print(history()) elif args.s_backdoor: file_scan(args.s_backdoor) elif args.s_webshell: webshell_scan(args.s_webshell) else: print("\033[1;33m可以带上参数 -h 或者 --help 来查看工具使用说明哦~\033[0m") print("\033[1;36m-------------------------------------------------------------------------\033[0m")