Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Wednesday, 29 December 2021

New Flagpro malware linked to Chinese state-backed hackers

Hacker

 The cyber espionage group APT (Advanced Persistent Threat) Blackwell has been targeting Japanese companies with a new type of malware that researchers call "Flag pro". Second level malware and run it. 

Breaching corporate networks

The chain of infection begins with a phishing e-mail that was developed for the target organization and pretends to be a message from a trusted partner.

 The e-mail contains a password-protected ZIP or RAR attachment with a Microsoft Excel file [.XLSM] linked to a malicious macro. Running this code creates an executable file in the Flag pro home directory. 

When it first runs, Flagpro connects to the C2 server over HTTP and sends the system identification details obtained by executing hard-coded operating system commands. 

In response, the C2 can send additional commands or a second-level payload that Flag pro can execute. 

An example of a sent command Source: NTT Security

Communication between the two is base64 encoded, and there is also a configurable delay between connections to avoid creating an identifiable operating model.

Flagpro
Communication between Flagpro and the C2 Source: NTT Security

 Flagpro has been used against Japanese companies for more than a year, at the latest since October 2020, according to a report by NTT Security. 

The most recent samples the researchers were able to obtain are from July 2021. The target companies are from a variety of industries, including defense, media and communications technology. 

Flagpro v2.0

At some point in their analysis, NTT researchers noticed a new version of Flag pro that can automatically close relevant dialog boxes to make external connections that could reveal their presence to the victim. 

"In the Flag pro v1.0 implementation, if a dialog box titled 'Windows セ キ ュ リ テ ィ' appears when Flagpro is accessing an external site, Flagpro will automatically click the OK button to close the dialog box" explains NTT Security report. “This handling also works if the dialog is written in Chinese or English  indicates destinations are in Japan, Taiwan, and English-speaking countries.

Flagpro
Inserted code serving as obfuscation in Flagpro v2.0 Source: NTT Security

 Blackwell APT is a lesser known player discovered by Trendier researchers in the summer of 2017 and has partnered with China. His typical targets are in Taiwan, although he has occasionally targeted companies in Japan and Hong Kong to steal technology.

 In February  2021, a report from Unit 42 linked  Blackwell to Waterbear Flag pro, another cyber espionage group believed to have the backing of the Chinese government like Apt, Black tech, Knowledge and Refinement to adapt their tools to new reports like this one, Flag pro is likely to be modified for more stealth use.

As the NTT report concludes, “Recently they (Blackwell) started using another new malware called Selfsame Loader and Spider RAT. “That means they are actively developing new malware. Defenders should be aware of the new indicators of exposure to new malware and follow all security best practices to maintain a strong defense against sophisticated threats like Blackwell.

Source: Bleeping Computer



from TechCrunch https://ift.tt/3sINJow
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support