Keylogger Data Stored in an ADS
If many malware samples try to be "filess" (read: they try to reduce their filesystem footprint to the bare minimum), another technique remains interesting: Alternate Data Streams or "ADS"[1]. This NTFS feature allows files to contain multiple data streams, enabling hidden or additional metadata to be stored alongside the main file content without being visible in standard file listings. A common usage of ADS is the "Mark of the Web"[2] that helps to flag files as suspicious or not depending on their origin.
I found a simple Python keylogger that implements an ADS to store the captured keystrokes:
hidden_dir = os.path.join(os.environ['APPDATA'], 'Microsoft\\Windows\\Cache') os.makedirs(hidden_dir, exist_ok=True) log_host_file = os.path.join(hidden_dir, "syscache.dat") log_file = log_host_file + ":logdata"
A second layer of protection is implemented to hide the file using SetFileAttributesW()[3] with the flag 0x02:
try: FILE_ATTRIBUTE_HIDDEN = 0x02 ctypes.windll.kernel32.SetFileAttributesW(log_host_file, FILE_ATTRIBUTE_HIDDEN) except Exception as e: print(f"Failed to hide host file: {e}")
The script is a classic keylogger but it also implements a clipboard monitor to capture all text content:
try: win32clipboard.OpenClipboard() if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_TEXT): data = win32clipboard.GetClipboardData() win32clipboard.CloseClipboard()
The script (SHA256:9927159c39a0201e2fcd558c4716fc5cab7e1c6ab69a311f7a21cab3c5667980) has a low VT score (only 3/64) even if not obfuscated. The script does not have an exfiltration mechanism, therefore I presume that another one will take care of this!
How to detect if files have ADS on your file system? This can be achieve with a few lines of PowerShell:
Get-ChildItem -Recurse -Path C:\ | ForEach-Object { $streams = Get-Item $_.FullName -Stream * -ErrorAction SilentlyContinue if ($streams.Count -gt 1) { $streams } }
Example:
PS C:\Users\REM> C:\Users\REM\Documents\ads_search.ps1 PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop\PURCHASE_ORDER.exe::$DATA PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop PSChildName : PURCHASE_ORDER.exe::$DATA PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False FileName : C:\Users\REM\Desktop\PURCHASE_ORDER.exe Stream : :$DATA Length : 1044992 PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop\PURCHASE_ORDER.exe:Zone.Identifier PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Users\REM\Desktop PSChildName : PURCHASE_ORDER.exe:Zone.Identifier PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False FileName : C:\Users\REM\Desktop\PURCHASE_ORDER.exe Stream : Zone.Identifier Length : 608
[1] https://infosecwriteups.com/ntfs-filesystem-alternate-data-stream-ads-c0e4a2402563
[2] https://en.wikipedia.org/wiki/Mark_of_the_Web
[3] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-setfileattributesw
Xavier Mertens (@xme)
Xameco
Senior ISC Handler - Freelance Cyber Security Consultant
PGP Key
DShield Honeypot Log Volume Increase
The volume of honeypot logs changes over time. Very rarely are honeypot logs quiet, meaning that there are no internet scans or malicious activity generating logs. Honeypots can see large increases in activity [1], but this has tended to be the exception, rather than the rule. Within the last few months, however, there has been a dramatic increase in honeypot log volumes and how often these high volumes are seen. This has not just been from my residential honeypot, which has historically seen higher log volumes, but from all of the honeypots that I run and archive logs from frequently.
Figure 1: Log volumes for multiple honeypots over the last 13-14 months. Recent activity has drowned out earlier traffic volumes, making them appear nonexistent.
To help demonstrate that other logs do exist, the high volume contributors were filtered out. Any source network (/24 in size) that contributed more than 1,000,000 logs in a day was removed.
Figure 2: Log volumes over time when filtering out sources that have contributed more than 1,000,000 logs in a day.
The source of the log volume has been from the web honeypot logs.
Figure 3: Web honeypot log volumes have been the highest contributor for these outliers.
More activity can be seen earlier in the year when large volume contributors are taken out. Even though this allows us to see more data prior to April of 2025, there is still an obvious increase in the last few months.
Figure 4: Web honeypot logs for the last 13-14 months, factoring out sources that have contributed more than 1,000,000 logs in a single day.
Previous high volume periods are also unable to be seen easily due to the recent higher log volume.
Figure 5: Previous days considered to be anomalous in terms of high-volume traffic barely register in comparison to recent web honeypot logs.
It has not been uncommon to see web honeypot files greater than 1 GB for a day of activity in the last couple of months. In the last few weeks, multiple honeypots have generated logs over 20 GB for one day of activity and for multiple days. In one day, a honeypot generated nearly 58 GB of web honeypot logs, which beat a previous "record" of ~35 GB.
Figure 6: The volumes are increasing, but are also happening more often, demonstrated by a significant rise in the average size of locally stored web honeypot logs.
So where are these logs coming from and what are they looking for? Since many source IP addresses were seen coming from overlapping subnets, the data was summarized by subnet. The data highlights that some subnets are focused on a small number of unique URL paths.
Subnet | Web Honeypot Hits | Unique IP Count | Unique URL Path Count | Top IP | Top URL Path |
---|---|---|---|---|---|
45.146.130.0/24 | 20078392935 | 6 | 55 | %%ip:45.146.130.107%% | / |
179.60.146.0/24 | 15730010424 | 2 | 2 | %%ip:179.60.146.100%% | /__api__/v1/config/domains [2] |
185.93.89.0/24 | 4976900543 | 6 | 134 | %%ip:185.93.89.185%% | / |
204.152.199.0/24 | 4421115971 | 9 | 2 | %%ip:204.152.199.8%% | / |
72.11.141.0/24 | 4241370914 | 13 | 2 | %%ip:72.11.141.14%% | / |
96.47.225.0/24 | 3636730956 | 9 | 2 | %%ip:96.47.225.5%% | / |
185.193.88.0/24 | 3610407610 | 4 | 4 | %%ip:185.193.88.178%% | /__api__/v1/config/domains |
155.94.185.0/24 | 3165292268 | 9 | 2 | %%ip:155.94.185.3%% | / |
149.56.205.0/24 | 2718351438 | 1 | 3 | %%ip:149.56.205.13%% | / |
193.111.208.0/24 | 2517999488 | 1 | 3 | %%ip:193.111.208.87%% | / |
193.29.13.0/24 | 2248677302 | 1 | 2 | %%ip:193.29.13.44%% | / |
92.63.196.0/24 | 2204582018 | 5 | 4 | %%ip:92.63.196.179%% | /__api__/v1/config/domains |
80.82.65.0/24 | 927668585 | 3 | 3 | %%ip:80.82.65.127%% | / |
151.243.93.0/24 | 560421646 | 1 | 3 | %%ip:151.243.93.62%% | / |
79.141.162.0/24 | 527387481 | 1 | 3 | %%ip:79.141.162.39%% | / |
83.229.17.0/24 | 463243368 | 2 | 4 | %%ip:83.229.17.112%% | / |
91.199.163.0/24 | 447956151 | 1 | 2 | %%ip:91.199.163.102%% | /__api__/v1/config/domains |
141.98.80.0/24 | 174475074 | 22 | 3 | %%ip:141.98.80.136%% | |
46.161.27.0/24 | 76298489 | 9 | 3 | %%ip:46.161.27.97%% | / |
80.243.171.0/24 | 68840696 | 1 | 18152 | %%ip:80.243.171.172%% | / |
171.22.28.0/24 | 60795298 | 2 | 2 | %%ip:171.22.28.30%% | / |
45.227.255.0/24 | 39617032 | 7 | 4 | %%ip:45.227.255.90%% | |
184.105.247.0/24 | 33156996 | 46 | 7 | %%ip:184.105.247.252%% | / |
213.209.150.0/24 | 23439064 | 2 | 2 | %%ip:213.209.150.239%% | / |
204.76.203.0/24 | 17219727 | 15 | 1127 | %%ip:204.76.203.206%% | / |
198.7.119.0/24 | 14768235 | 2 | 5437 | %%ip:198.7.119.14%% | /index.php |
77.90.153.0/24 | 13968760 | 2 | 144 | %%ip:77.90.153.248%% | / |
185.218.84.0/24 | 12687799 | 13 | 4 | %%ip:185.218.84.178%% | / |
65.49.20.0/24 | 11897736 | 61 | 6 | %%ip:65.49.20.68%% | / |
74.82.47.0/24 | 9974952 | 61 | 6 | %%ip:74.82.47.3%% | / |
184.105.139.0/24 | 8966536 | 60 | 7 | %%ip:184.105.139.67%% | / |
111.170.18.0/24 | 8271554 | 1 | 1 | %%ip:111.170.18.49%% | api.ipapi.is:443 |
185.91.127.0/24 | 7976326 | 10 | 27 | %%ip:185.91.127.66%% | myip.wtf:443 |
216.218.206.0/24 | 6055214 | 61 | 6 | %%ip:216.218.206.66%% | / |
98.82.141.0/24 | 4647608 | 1 | 6724 | %%ip:98.82.141.184%% | |
51.222.26.0/24 | 4598477 | 2 | 7029 | %%ip:51.222.26.42%% | |
23.234.91.0/24 | 4454070 | 1 | 1 | %%ip:23.234.91.166%% | / |
5.183.209.0/24 | 3993952 | 1 | 6 | %%ip:5.183.209.244%% | / |
37.19.221.0/24 | 3922037 | 4 | 1 | %%ip:37.19.221.152%% | / |
149.50.103.0/24 | 3764760 | 1 | 1 | %%ip:149.50.103.48%% | / |
154.81.156.0/24 | 3665899 | 10 | 10 | %%ip:154.81.156.7%% | / |
207.167.67.0/24 | 3593126 | 7 | 6 | %%ip:207.167.67.206%% | |
64.62.197.0/24 | 3456463 | 240 | 8 | %%ip:64.62.197.92%% | / |
207.180.204.0/24 | 3291942 | 1 | 6911 | %%ip:207.180.204.178%% | |
124.198.132.0/24 | 2937813 | 14 | 1 | %%ip:124.198.132.155%% | /api/sonicos/is-sslvpn-enabled |
132.226.159.0/24 | 2878302 | 1 | 184 | %%ip:132.226.159.101%% | |
84.247.172.0/24 | 2787287 | 4 | 6953 | %%ip:84.247.172.209%% | /index.php |
193.41.206.0/24 | 2764461 | 11 | 3170 | %%ip:193.41.206.24%% | /.env |
80.65.211.0/24 | 2463234 | 1 | 6767 | %%ip:80.65.211.20%% | |
185.191.126.0/24 | 2379847 | 2 | 7 | %%ip:185.191.126.248%% | / |
87.236.176.0/24 | 2333336 | 252 | 4 | %%ip:87.236.176.117%% | / |
154.83.103.0/24 | 2276967 | 23 | 6369 | %%ip:154.83.103.106%% | /.git/HEAD |
132.226.122.0/24 | 2145978 | 1 | 184 | %%ip:132.226.122.74%% | |
179.43.168.0/24 | 2088416 | 2 | 74 | %%ip:179.43.168.146%% | / |
191.252.194.0/24 | 1999452 | 1 | 6725 | %%ip:191.252.194.180%% | |
65.49.1.0/24 | 1993183 | 232 | 8 | %%ip:65.49.1.94%% | / |
13.41.162.0/24 | 1933149 | 1 | 6725 | %%ip:13.41.162.60%% | |
185.177.72.0/24 | 1919963 | 17 | 3864 | %%ip:185.177.72.111%% | /.git/HEAD |
179.43.161.0/24 | 1616473 | 2 | 1 | %%ip:179.43.161.218%% | / |
193.26.115.0/24 | 1595736 | 9 | 15 | %%ip:193.26.115.193%% | /api/sonicos/is-sslvpn-enabled |
84.201.151.0/24 | 1568962 | 1 | 1281 | %%ip:84.201.151.18%% | /index.php |
64.62.156.0/24 | 1519319 | 219 | 8 | %%ip:64.62.156.108%% | / |
75.119.147.0/24 | 1513333 | 1 | 6912 | %%ip:75.119.147.56%% | |
139.144.52.0/24 | 1504276 | 1 | 569 | %%ip:139.144.52.241%% | / |
79.124.58.0/24 | 1503070 | 1 | 9 | %%ip:79.124.58.198%% | / |
31.220.89.0/24 | 1444043 | 1 | 6724 | %%ip:31.220.89.104%% | |
157.245.174.0/24 | 1426128 | 1 | 53 | %%ip:157.245.174.148%% | |
94.72.105.0/24 | 1420774 | 2 | 12531 | %%ip:94.72.105.70%% | / |
78.153.140.0/24 | 1346725 | 16 | 1372 | %%ip:78.153.140.179%% | /.env |
193.68.89.0/24 | 1332852 | 7 | 6 | %%ip:193.68.89.51%% | / |
45.148.10.0/24 | 1328615 | 33 | 347 | %%ip:45.148.10.235%% | /cmd,/simZysh/register_main/setCookie |
148.113.208.0/24 | 1308479 | 1 | 1 | %%ip:148.113.208.45%% | / |
141.98.11.0/24 | 1298067 | 49 | 811 | %%ip:141.98.11.128%% | / |
176.65.148.0/24 | 1217874 | 34 | 23 | %%ip:176.65.148.243%% | / |
84.201.170.0/24 | 1194041 | 1 | 3070 | %%ip:84.201.170.229%% | / |
84.201.181.0/24 | 1177504 | 2 | 1749 | %%ip:84.201.181.85%% | / |
162.62.233.0/24 | 1176321 | 1 | 1280 | %%ip:162.62.233.142%% | |
45.84.89.0/24 | 1106375 | 2 | 1 | %%ip:45.84.89.2%% | / |
195.3.221.0/24 | 1063626 | 1 | 14 | %%ip:195.3.221.137%% | / |
158.160.162.0/24 | 1016033 | 1 | 8095 | %%ip:158.160.162.122%% | / |
Figure 7: Common URLs accessed by subnets, with overall subnet activity and the most active IP address for each subnet.
URL Path | Total Hits |
---|---|
/ | 38,052,002,400 |
/__api__/v1/config/domains [3] | 33,198,670,474 |
/__api__/v1/logon | 1,635,235,500 |
api.ipapi.is:443 | 8,270,636 |
myip.wtf:443 | 7,914,843 |
Figure 8: 5 Most common URL paths seen for active subnets.
There is a lot more data to look into, but this activity may require additional action for anyone hosting a honeypot and retaining additional logs. For me, I'm working on archiving more local logs more frequently to save space. This may mean doing high compression zipping of web honeypot logs, potentially twice a day. It may be necessary to consider having over 20 GB of logs per day for multiple days. If log backups and cleanup happen once per week, this may mean storage of 140 GB of just web honeypot logs between backups.
[1] https://isc.sans.edu/diary/Overflowing+Web+Honeypot+Logs/30416
[2] https://isc.sans.edu/diary/Web+Scanning+SonicWall+for+CVE202120016+Update/31952/
[3] https://isc.sans.edu/diary/31906
--
Jesse La Grew
Handler
0 Comments
Experimental Suspicious Domain Feed
We have had a "newly registered domain" feed for a few years. This feed pulls data from ICANN's centralized zone data service (https://czds.icann.org) and TLS certificate transparency logs.
The ICANN CZDS is a good start, but it only offers data from top-level domains collaborating with ICANN. Missing are in particular country-level domains. Country-level zone files can be hard to come by, so we use TLS certificate transparency logs as a "cheap" alternative. Pretty much all domain registrars will, by default, create a "parked" website, and with that, they will make a certificate. Even if they do not, any halfway self-respecting phishing site will use TLS and register a certificate with a public certificate authority at one point. The TLS certificate transparency logs also help capture older domains.
Each day, we capture around 250,000 new domains using this system. But of course, we want to know which domains are used for malicious purposes. However, as the sample below shows, there are a lot of "odd" domain names.
domainname |
---|
jgcinversiones.com |
h20manager.net |
1sbrfreebet.com |
stability.now |
mdskj.top |
internationalone19.com |
clistrict196.org |
agenteinsider.com |
720airpano.com |
dhofp.tax |
bos228btts.lol |
japansocialmarketing.org |
mummyandimedia.com |
1dyzfd.buzz |
oollm.shop |
snapztrailk.store |
perumice.com |
nrnmy.sbs |
commaexperts.com |
softfragments.com |
So I searched for some commonly used criteria to identify "bad" domain names, and found these:
- A domain name is very short or very long
- The entropy of the domain name (is it just random characters?)
- Does it contain a lot of numbers or hyphens?
- Is it an international domain name, and if so, is it valid? Does it mix different scripts (=languages)?
- Does it contain keywords like "bank" or "login" that are often used with phishing sites, or brand names like "Apple" or "Google"?
We have now added a score to each domain name that can be used to rank them based on these criteria. You can find a daily report here, and the score was added to our "recentdomain" API feed. This is experimental, and the exact algorithm we use for the score will change over time.
We used to have an "old" supicous domain feed that was mostly based on correlating a few third party feeds, but over time these feeds went away or became commercial and we could no longer use them.
Feedback is very welcome.
---
Johannes B. Ullrich, Ph.D. , Dean of Research, SANS.edu
Twitter|
1 Comments
SSH Tunneling in Action: direct-tcp requests [Guest Diary]
[This is a Guest Diary by Sihui Neo, an ISC intern as part of the SANS.edu BACS program]
As part of the SANS degree program curriculum, I had the opportunity to set up a honeypot to monitor log activities mimicking a vulnerable server. I used the AWS free tier EC2 instance to set up the honeypot sensor in Japan and deployed Cowrie, a SSH and Telnet honeypot designed to log brute force attacks and shell interaction performed by an attacker.
In addition to the sensor setup, to allow me to easily look at all the logs in a single platform, I purchased a separate virtual private server and installed ELK SIEM, following the setup instructions from ISC mentor, Guy Bruneau’s github page.[1] Then setup the sensor to send all logs to the SIEM server.
Since the setup of the honeypot, one of the interesting observations in logs was direct-tcp connection requests. More than 1000 different IPs within a month were seen to have made these requests and more than 75% were made to a single destination IP. In this post, I’ll cover how and why these connections are set up, and where the destination IP points to.
What did the logs look like?
Sample of direct-tcp connection request seen in honeypot logs
The sample log on the original event field seen above indicates that the request originated from 127.0.0.1 (the local loopback interface), but when looking at the source.ip in kibana, the actual source IPs were different external addresses.
125.20.251.66 was the actual source IP
Using the source IP 125.20.251.66, I took a look at the traffic before the direct-tcp connection and the PCAP traffic.
Figure 1. Logs from 125.20.251.66 at the time of the direct-tcp connection request showing source port of 32069 in a red box
In Figure 1, I extracted the logs for traffic from source IP 125.20.251.66 as seen in kibana. The line direct-tcp connection request to 77.88.21.158:25 from 127.0.0.1:32069 is highlighted in the red box, yet the source address shows 125.20.251.66 while the source port matches 32069.
Additional evidence is in the PCAP. The entire stream below showed the connection using the source port of 42948, which was indeed the source port for the initial SSH connection as seen in the Figure 1 above, highlighted in a blue box, source IP seen in the last column.
Figure 2. PCAP and TCP stream for traffic from 125.20.251.66
Lastly, the SSH banner SSH-2.0-OpenSSH_7.4 was seen in Figure 1, highlighted in green as well as in the TCP Stream at the bottom of Figure 2. All these suggested that the traffic was being forwarded or proxied to help obscure the real source IP.
So how does it work?
Reconnaissance and Initial access
As explained before, the attacker has to initiate a connection to the honeypot server to create a SSH tunnel and to do that, they require valid SSH login credentials. This is usually fulfilled by brute forcing. When looking at initial activities of IPs that had direct-tcp connection requests, they had a similar pattern of :
- Only attempting to connect to port 2222
- Throttled brute forcing attempts, meaning brute forcing attempts from the same IP were spaced out at least 2 hours if it failed.
- TTL of less than 50, means starting TTL is likely 64, which could be indicative of Linux/MAX OSX systems [3]
- SSH client hash fingerprint: acaa53e0a7d7ac7d1255103f37901306
After successfully obtaining valid SSH credentials, the SSH tunnel would usually be set up within the second.
Going somewhere?
As mentioned before, more than 1000 IPs were seen to have made these proxy connections in the honeypot and interestingly, the majority, more than 75%, were seen to be proxying to the destination IP of 77.88.21.158 at port 25.
77.88.21.158 port 25 seems to be the smtp server for yandex mail, based in Russia [4] which is a common blocked location for many countries.
Referencing the SSH tunnel diagram shown earlier, this likely means that the client set their email client to use ‘127.0.0.1:1080’ as the proxy, which instructed the email traffic to go through the established SSH tunnel to reach 77.88.21.158.
As the honeypot server does not really have SSH service on port 2222, the connection is closed quickly after the tunnel is set up and the PCAP logs do not capture outbound traffic to the destination IPs.
What’s the worst that could happen?
Direct-tcp connections are usually a form of proxy connection that uses the honeypot server in this case, as an intermidiary to either mask origin IPs or to bypass traffic rules. The reason attackers use compromised servers instead of paid or free VPN is attribution and/or possibly consistency. Commercial VPN requires sign up and services like peer-to-peer networks do not usually allow users to choose the route or hops.
Establishing a SSH tunnel does not require root and can easily be set up as long as you have a valid user’s credentials to login to the SSH server (honeypot, in this case). In fact, brute forcing is one of the more common and easy tactics to gain access to vulnerable servers due to password leaks, reusing of passwords and default passwords.
Once your server is compromised and successfully used as a proxy, your server may be susceptible to:
- Malicious Traffic Attribution: Actors can route illegal activities (hacking, fraud, DDoS) through your server, making you appear responsible.
- Bandwidth Overuse: Proxy traffic consumes resources, which can lead to throttling by your host/ISP and extra costs especially in the cloud.
- IP Blacklisting: Your server’s IP may end up on firewall blacklists preventing you from your daily activities
[1] https://github.com/bruneaug/DShield-SIEM
[2] https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters/
[3] https://www.imperva.com/learn/performance/time-to-live-ttl/
[4] https://search.censys.io/hosts/77.88.21.158
[5] https://www.sans.edu/cyber-security-programs/bachelors-degree/
-----------
Guy Bruneau IPSS Inc.
My GitHub Page
Twitter: GuyBruneau
gbruneau at isc dot sans dot edu
0 Comments
Setting up Your Own Certificate Authority for Development: Why and How.
There are several reasons why one would set up an internal certificate authority. Some are configured to support strong authentication schemes, some for additional flexibility and convenience. I am going to cover the second part. In particular, it can be helpful for developers to have an internal certificate authority to issue certificates for development purposes. Websites used for development and internal testing are usually only used by a few individuals and are generally only accessible via internal networks or VPNs. Often, these sites do not even use TLS. But there are a few reasons why you should consider running TLS on all sites, including internal development sites:
- Browser preferences: Browsers are increasingly "forcing" TLS. Running a site without TLS can be inconvenient. In particular, if you use features like strict transport security, setting up exceptions for development sites (in particular APIs) can be messy.
- Configuration Consistency: Keeping your development environment as close to "the real thing" as possible is best. The fewer changes you make, the less likely something will break. Some advanced JavaScript features (for example, geo-location) may not even work without TLS.
- Security: Even in a more isolated development environment, TLS still provides developers an important safeguard to not expose themselves to additional risk. Even if you manage only to use test data, attackers could still use insecure development sites to inject code to pivot into developers' machines.
The obvious, simple solution would be just using a free service like Let's Encrypt to request developer certificates. But there are a few reasons why you probably do not want to do this:
- Certificate Request Authentication: Development sites should not be exposed publicly, and the simple HTTP authentication for a website will likely not work. Alternatively, you could use DNS-based authentication schemes, but that would require providing developers with access to modify DNS settings. This can be done safely, but it takes a lot of work to get it right. Do not forget that Let's Encrypt also implements rate limits that may be exceeded if you request too many certificates.
- Certificate Transparency: Public certificate authorities must publish all certificates they issue in certificate transparency logs. An attacker can use them to easily discover development systems if you use a public certificate authority to request certificates.
- Flexibility: Your internal certificate authority does not have to comply with the same rules that public certificate authorities have to obey. Your certificates can be valid longer (or shorter), they can use internal domain names or even IP addresses. This is useful for development sites.
The next step is "how". How do you set up an easy-to-use certificate authority? OpenSSL documents the hard way. You create a certificate authority, and next, you use various scripts to create individual certificates. This works, but gets old quickly. There is a better way to set up a certificate authority that supports the "ACME" protocol to issue certificates. This is easier to manage centrally, and you will have more visibility into the issued certificates.
The easiest and cheapest way to get started is the open-source solution offered by Smallstep. Smallstep also provides several commercial solutions if you prefer support and additional integration features. As an added "bonus", it can also be used to manage SSH certificates.
The Smallstep instructions are good. One issue I ran into is that you need to initialize your CA before setting Smallstep up to run as a daemon. So follow the instructions in this order:
- Install: https://smallstep.com/docs/step-ca/installation/ (I used Ubuntu 24.04 in a minimal-sized container on Proxmox)
- Install jq if it is not already installed.
- Initialize: https://smallstep.com/docs/step-ca/getting-started/
- Run as a daemon: https://smallstep.com/docs/step-ca/certificate-authority-server-production/index.html#running-step-ca-as-a-daemon
Once it is all set up, all you need to do is
1 - Add the new certificate authority as a trusted CA to your browser (and or operating system)
2 - The first time you use "certbot" to request a certificate, add the following argument: --server https://yourinternalca/acme/acme/directory
You should be able to use various validation schemes with smallstep. Please ensure the server smallstep is running and can resolve any hostnames you may use, but adding them to a host file will work.
Note that CAs you add manually do not have to obey the same rules as public certificate authorities. Certificates may be valid for longer; you may issue certificates for IP addresses, and you do not need to configure revocation or certificate transparency.
---
Johannes B. Ullrich, Ph.D. Dean of Research, SANS.edu
Twitter|
0 Comments
Microsoft Patch Tuesday, July 2025
Today, Microsoft released patches for 130 Microsoft vulnerabilities and 9 additional vulnerabilities not part of Microsoft's portfolio but distributed by Microsoft. 14 of these are rated critical. Only one of the vulnerabilities was disclosed before being patched, and none of the vulnerabilities have so far been exploited.
Noteworthy Vulnerabilities:
CVE-2025-49695 and CVE-2025-49696: Both vulnerabilities affect Microsoft Office, are rated critical, and are considered "more likely" to be exploited by Microsoft. These issues do not require user interaction, so the user does not need to open a document. The exploit could be triggered via the preview pane. Macs are affected as well, but a patch is currently only available for Windows.
CVE-2025-49719: This vulnerability has already been made public. It does allow for information disclosure on a Microsoft SQL Server. To patch, you must patch the OLE DB Driver.
CVE-2025-49717: Exploitation is considered less likely for this vulnerability. But if exploited, it would allow code execution via a Microsoft SQL Server. Take this as additional motivation not to expose SQL servers.
CVE-2025-49704: I consider this vulnerability interesting as it appears to allow command/code injection in SharePoint. However, an attacker has to be authenticated to take advantage of this vulnerability.
Description | |||||||
---|---|---|---|---|---|---|---|
CVE | Disclosed | Exploited | Exploitability (old versions) | current version | Severity | CVSS Base (AVG) | CVSS Temporal (AVG) |
AMD: CVE-2024-36350 Transient Scheduler Attack in Store Queue | |||||||
%%cve:2025-36350%% | No | No | - | Less Likely | Critical | 5.6 | 4.9 |
AMD: CVE-2025-36357 Transient Scheduler Attack in L1 Data Queue | |||||||
%%cve:2025-36357%% | No | No | - | Less Likely | Critical | 5.6 | 4.9 |
Azure Monitor Agent Remote Code Execution Vulnerability | |||||||
%%cve:2025-47988%% | No | No | - | Less Likely | Important | 7.5 | 6.5 |
Azure Service Fabric Runtime Elevation of Privilege Vulnerability | |||||||
%%cve:2025-21195%% | No | No | - | Less Likely | Important | 6.0 | 5.2 |
BitLocker Security Feature Bypass Vulnerability | |||||||
%%cve:2025-48001%% | No | No | - | More Likely | Important | 6.8 | 5.9 |
%%cve:2025-48003%% | No | No | - | Less Likely | Important | 6.8 | 5.9 |
%%cve:2025-48800%% | No | No | - | More Likely | Important | 6.8 | 5.9 |
%%cve:2025-48818%% | No | No | - | More Likely | Important | 6.8 | 5.9 |
%%cve:2025-48804%% | No | No | - | More Likely | Important | 6.8 | 5.9 |
Capability Access Management Service (camsvc) Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49690%% | No | No | - | Less Likely | Important | 7.4 | 6.4 |
Credential Security Support Provider Protocol (CredSSP) Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47987%% | No | No | - | More Likely | Important | 7.8 | 6.8 |
HID Class Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-48816%% | No | No | - | Unlikely | Important | 7.8 | 6.8 |
Kernel Streaming WOW Thunk Service Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49675%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
MITRE: CVE-2025-27613 Gitk Arguments Vulnerability | |||||||
%%cve:2025-27613%% | No | No | - | - | - | ||
MITRE: CVE-2025-27614 Gitk Arbitrary Code Execution Vulnerability | |||||||
%%cve:2025-27614%% | No | No | - | - | - | ||
MITRE: CVE-2025-46334 Git Malicious Shell Vulnerability | |||||||
%%cve:2025-46334%% | No | No | - | - | - | ||
MITRE: CVE-2025-46835 Git File Overwrite Vulnerability | |||||||
%%cve:2025-46835%% | No | No | - | - | - | ||
MITRE: CVE-2025-48384 Git Symlink Vulnerability | |||||||
%%cve:2025-48384%% | No | No | - | - | - | ||
MITRE: CVE-2025-48385 Git Protocol Injection Vulnerability | |||||||
%%cve:2025-48385%% | No | No | - | - | - | ||
MITRE: CVE-2025-48386 Git Credential Helper Vulnerability | |||||||
%%cve:2025-48386%% | No | No | - | - | - | ||
Microsoft Brokering File System Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49677%% | No | No | - | Less Likely | Important | 7.0 | 6.1 |
%%cve:2025-49694%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-49693%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Microsoft Configuration Manager Remote Code Execution Vulnerability | |||||||
%%cve:2025-47178%% | No | No | - | Unlikely | Important | 8.0 | 7.0 |
Microsoft Edge (Chromium-based) Information Disclosure Vulnerability | |||||||
%%cve:2025-49741%% | No | No | Less Likely | Less Likely | Important | 7.4 | 6.4 |
Microsoft Edge (Chromium-based) Remote Code Execution Vulnerability | |||||||
%%cve:2025-49713%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
Microsoft Excel Information Disclosure Vulnerability | |||||||
%%cve:2025-48812%% | No | No | - | Unlikely | Important | 5.5 | 4.8 |
Microsoft Excel Remote Code Execution Vulnerability | |||||||
%%cve:2025-49711%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Microsoft MPEG-2 Video Extension Remote Code Execution Vulnerability | |||||||
%%cve:2025-48805%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-48806%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Microsoft Office Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47994%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Microsoft Office Remote Code Execution Vulnerability | |||||||
%%cve:2025-49695%% | No | No | - | More Likely | Critical | 8.4 | 7.3 |
%%cve:2025-49696%% | No | No | - | More Likely | Critical | 8.4 | 7.3 |
%%cve:2025-49697%% | No | No | - | Less Likely | Critical | 8.4 | 7.3 |
%%cve:2025-49699%% | No | No | - | Less Likely | Important | 7.0 | 6.1 |
%%cve:2025-49702%% | No | No | - | Less Likely | Critical | 7.8 | 6.8 |
Microsoft PC Manager Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47993%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-49738%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Microsoft PowerPoint Remote Code Execution Vulnerability | |||||||
%%cve:2025-49705%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Microsoft SQL Server Information Disclosure Vulnerability | |||||||
%%cve:2025-49719%% | Yes | No | - | Less Likely | Important | 7.5 | 6.5 |
%%cve:2025-49718%% | No | No | - | More Likely | Important | 7.5 | 6.5 |
Microsoft SQL Server Remote Code Execution Vulnerability | |||||||
%%cve:2025-49717%% | No | No | - | Unlikely | Critical | 8.5 | 7.4 |
Microsoft SharePoint Remote Code Execution Vulnerability | |||||||
%%cve:2025-49701%% | No | No | - | More Likely | Important | 8.8 | 7.7 |
%%cve:2025-49704%% | No | No | - | More Likely | Critical | 8.8 | 7.7 |
Microsoft SharePoint Server Spoofing Vulnerability | |||||||
%%cve:2025-49706%% | No | No | - | Less Likely | Important | 6.3 | 5.5 |
Microsoft Teams Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49731%% | No | No | - | Less Likely | Important | 3.1 | 2.7 |
%%cve:2025-49737%% | No | No | - | Less Likely | Important | 7.0 | 6.1 |
Microsoft Virtual Hard Disk Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47971%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-49689%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-47973%% | No | No | - | Unlikely | Important | 7.8 | 6.8 |
Microsoft Virtual Hard Disk Remote Code Execution Vulnerability | |||||||
%%cve:2025-49683%% | No | No | - | Unlikely | Important | 7.8 | 6.8 |
Microsoft Windows QoS Scheduler Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49730%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Microsoft Word Remote Code Execution Vulnerability | |||||||
%%cve:2025-49700%% | No | No | - | Unlikely | Important | 7.8 | 6.8 |
%%cve:2025-49703%% | No | No | - | Less Likely | Critical | 7.8 | 6.8 |
%%cve:2025-49698%% | No | No | - | Less Likely | Critical | 7.8 | 6.8 |
NTFS Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49678%% | No | No | - | Unlikely | Important | 7.0 | 6.1 |
Office Developer Platform Security Feature Bypass Vulnerability | |||||||
%%cve:2025-49756%% | No | No | - | Less Likely | Important | 3.3 | 2.9 |
Remote Desktop Client Remote Code Execution Vulnerability | |||||||
%%cve:2025-48817%% | No | No | - | Less Likely | Important | 8.8 | 7.7 |
Remote Desktop Licensing Service Security Feature Bypass Vulnerability | |||||||
%%cve:2025-48814%% | No | No | - | Less Likely | Important | 7.5 | 6.5 |
Remote Desktop Spoofing Vulnerability | |||||||
%%cve:2025-33054%% | No | No | - | Less Likely | Important | 8.1 | 7.1 |
SPNEGO Extended Negotiation (NEGOEX) Security Mechanism Remote Code Execution Vulnerability | |||||||
%%cve:2025-47981%% | No | No | - | More Likely | Critical | 9.8 | 8.5 |
Universal Print Management Service Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47986%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
Visual Studio Code Python Extension Remote Code Execution Vulnerability | |||||||
%%cve:2025-49714%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Visual Studio Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49739%% | No | No | - | Less Likely | Important | 8.8 | 7.7 |
Win32k Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49727%% | No | No | - | More Likely | Important | 7.0 | 6.1 |
%%cve:2025-49733%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49661%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows AppX Deployment Service Elevation of Privilege Vulnerability | |||||||
%%cve:2025-48820%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Connected Devices Platform Service Elevation of Privilege Vulnerability | |||||||
%%cve:2025-48000%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Connected Devices Platform Service Remote Code Execution Vulnerability | |||||||
%%cve:2025-49724%% | No | No | - | More Likely | Important | 8.8 | 7.7 |
Windows Cryptographic Services Information Disclosure Vulnerability | |||||||
%%cve:2025-48823%% | No | No | - | Less Likely | Important | 5.9 | 5.2 |
Windows Event Tracing Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47985%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-49660%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Fast FAT File System Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49721%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows GDI Information Disclosure Vulnerability | |||||||
%%cve:2025-47984%% | No | No | - | Less Likely | Important | 7.5 | 6.5 |
Windows Graphics Component Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49732%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-49744%% | No | No | - | More Likely | Important | 7.0 | 6.1 |
Windows Graphics Component Remote Code Execution Vulnerability | |||||||
%%cve:2025-49742%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Hyper-V Denial of Service Vulnerability | |||||||
%%cve:2025-47999%% | No | No | - | Less Likely | Important | 6.8 | 5.9 |
Windows Hyper-V Discrete Device Assignment (DDA) Remote Code Execution Vulnerability | |||||||
%%cve:2025-48822%% | No | No | - | Less Likely | Critical | 8.6 | 7.5 |
Windows Hyper-V Information Disclosure Vulnerability | |||||||
%%cve:2025-48002%% | No | No | - | Less Likely | Important | 5.7 | 5.0 |
Windows Imaging Component Information Disclosure Vulnerability | |||||||
%%cve:2025-47980%% | No | No | - | Less Likely | Critical | 6.2 | 5.4 |
Windows Input Method Editor (IME) Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47972%% | No | No | - | Unlikely | Important | 8.0 | 7.0 |
%%cve:2025-49687%% | No | No | - | Less Likely | Important | 8.8 | 7.7 |
%%cve:2025-47991%% | No | No | - | Unlikely | Important | 7.8 | 6.8 |
Windows KDC Proxy Service (KPSSVC) Remote Code Execution Vulnerability | |||||||
%%cve:2025-49735%% | No | No | - | More Likely | Critical | 8.1 | 7.1 |
Windows Kerberos Denial of Service Vulnerability | |||||||
%%cve:2025-47978%% | No | No | - | More Likely | Important | 6.5 | 5.7 |
Windows Kernel Information Disclosure Vulnerability | |||||||
%%cve:2025-26636%% | No | No | - | Less Likely | Important | 5.5 | 4.8 |
%%cve:2025-48808%% | No | No | - | Unlikely | Important | 5.5 | 4.8 |
Windows MBT Transport Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47996%% | No | No | - | Unlikely | Important | 7.8 | 6.8 |
Windows Media Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49682%% | No | No | - | Less Likely | Important | 7.3 | 6.4 |
Windows Miracast Wireless Display Remote Code Execution Vulnerability | |||||||
%%cve:2025-49691%% | No | No | - | Less Likely | Important | 8.0 | 7.0 |
Windows Netlogon Denial of Service Vulnerability | |||||||
%%cve:2025-49716%% | No | No | - | Unlikely | Important | 5.9 | 5.2 |
Windows Notification Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49726%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-49725%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Performance Recorder (WPR) Denial of Service Vulnerability | |||||||
%%cve:2025-49680%% | No | No | - | Less Likely | Important | 7.3 | 6.4 |
Windows Print Spooler Denial of Service Vulnerability | |||||||
%%cve:2025-49722%% | No | No | - | Less Likely | Important | 5.7 | 5.0 |
Windows Routing and Remote Access Service (RRAS) Information Disclosure Vulnerability | |||||||
%%cve:2025-49671%% | No | No | - | Unlikely | Important | 6.5 | 5.7 |
%%cve:2025-49681%% | No | No | - | Unlikely | Important | 6.5 | 5.7 |
Windows Routing and Remote Access Service (RRAS) Remote Code Execution Vulnerability | |||||||
%%cve:2025-48824%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49657%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49670%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49672%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49674%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49676%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49688%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49753%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-47998%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49663%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49668%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49669%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49673%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
%%cve:2025-49729%% | No | No | - | Unlikely | Important | 8.8 | 7.7 |
Windows SMB Server Spoofing Vulnerability | |||||||
%%cve:2025-48802%% | No | No | - | Less Likely | Important | 6.5 | 5.7 |
Windows Search Service Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49685%% | No | No | - | Less Likely | Important | 7.0 | 6.1 |
Windows Secure Kernel Mode Information Disclosure Vulnerability | |||||||
%%cve:2025-48809%% | No | No | - | Less Likely | Important | 5.5 | 4.8 |
%%cve:2025-48810%% | No | No | - | Less Likely | Important | 5.5 | 4.8 |
Windows Server Setup and Boot Event Collection Remote Code Execution Vulnerability | |||||||
%%cve:2025-49666%% | No | No | - | Unlikely | Important | 7.2 | 6.3 |
Windows Shell Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49679%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Simple Search and Discovery Protocol (SSDP) Service Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47976%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-47975%% | No | No | - | Less Likely | Important | 7.0 | 6.1 |
%%cve:2025-48815%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows SmartScreen Security Feature Bypass Vulnerability | |||||||
%%cve:2025-49740%% | No | No | - | Less Likely | Important | 8.8 | 7.7 |
Windows StateRepository API Server file Tampering Vulnerability | |||||||
%%cve:2025-49723%% | No | No | - | Less Likely | Important | 8.8 | 7.7 |
Windows Storage Port Driver Information Disclosure Vulnerability | |||||||
%%cve:2025-49684%% | No | No | - | Less Likely | Important | 5.5 | 4.8 |
Windows Storage Spoofing Vulnerability | |||||||
%%cve:2025-49760%% | No | No | - | Less Likely | Moderate | 3.5 | 3.1 |
Windows Storage VSP Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47982%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows TCP/IP Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49686%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Transport Driver Interface (TDI) Translation Driver Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49659%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Windows Transport Driver Interface (TDI) Translation Driver Information Disclosure Vulnerability | |||||||
%%cve:2025-49658%% | No | No | - | Less Likely | Important | 5.5 | 4.8 |
Windows Universal Plug and Play (UPnP) Device Host Elevation of Privilege Vulnerability | |||||||
%%cve:2025-48819%% | No | No | - | Less Likely | Important | 7.1 | 6.2 |
%%cve:2025-48821%% | No | No | - | Less Likely | Important | 7.1 | 6.2 |
Windows Update Service Elevation of Privilege Vulnerability | |||||||
%%cve:2025-48799%% | No | No | - | More Likely | Important | 7.8 | 6.8 |
Windows User-Mode Driver Framework Host Information Disclosure Vulnerability | |||||||
%%cve:2025-49664%% | No | No | - | Less Likely | Important | 5.5 | 4.8 |
Windows Virtualization-Based Security (VBS) Elevation of Privilege Vulnerability | |||||||
%%cve:2025-47159%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
%%cve:2025-48803%% | No | No | - | Less Likely | Important | 6.7 | 5.8 |
Windows Virtualization-Based Security (VBS) Enclave Elevation of Privilege Vulnerability | |||||||
%%cve:2025-48811%% | No | No | - | Less Likely | Important | 6.7 | 5.8 |
Windows Win32 Kernel Subsystem Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49667%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
Workspace Broker Elevation of Privilege Vulnerability | |||||||
%%cve:2025-49665%% | No | No | - | Less Likely | Important | 7.8 | 6.8 |
---
Johannes B. Ullrich, Ph.D. , Dean of Research, SANS.edu
Twitter|
0 Comments
What's My (File)Name?
Modern malware implements a lot of anti-debugging and anti-analysis features. Today, when a malware is spread in the wild, there are chances that it will be automatically sent into a automatic analysis pipe, and a sandbox. To analyze a sample in a sandbox, it must be "copied" into the sandbox and executed. This can happen manually or automatically. When people start the analysis of a suspicious file, they usually call it "sample.exe", "malware.exe" or "suspicious.exe". It's not always a good idea because it's can be detected by the malware and make it aware that "I'm being analyzed".
From a malware point of view, it's easy to detect this situation. Microsoft offers to Developers thousands of API calls that can be used for "malicious purposes". Let's have a look at GetModuleFileName()[1]. This API call retrieves the fully qualified path for the file that contains the specified module. The module must have been loaded by the current process. Normally, a "module" refers to a DLL but, in the Microsoft ecosystem, the main program is also a "module" (like a DLL is also a PE file but with exported functions)
If you read carefully the API description, it expects 3 parameters but the first name can be omitted (set to NULL):
"If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process."
Let's write a small program:
using System; using System.Runtime.InteropServices; class Program { // Invoke declaration for GetModuleFileName [DllImport("kernel32.dll", CharSet = CharSet.Auto)] static extern uint GetModuleFileName(IntPtr hModule, [Out] char[] lpFilename, uint nSize); static void Main(string[] args) { const int maxPath = 260; char[] buffer = new char[maxPath]; uint length = GetModuleFileName(IntPtr.Zero, buffer, (uint)buffer.Length); // Get the exec basename string fullPath = new string(buffer, 0, (int)length); string exeName = System.IO.Path.GetFileName(fullPath); // List of potential sample names string[] allowedNames = { "sample.exe", "malware.exe", "malicious.exe", "suspicious.exe", "test.exe", "submitted_sample.exe", "file.bin", "file.exe", "virus.exe", "program.exe" }; foreach (var name in allowedNames) { if (string.Equals(exeName, name, StringComparison.OrdinalIgnoreCase)) { // Executable name matched, silenyly exit! return; } } Console.WriteLine($"I'm {exeName}, looks good! Let's infect this host! }}:->"); } }
Let's compile and execute this file named "ISC_20250707.exe":
Once renamed as "malware.exe", the program will just silently exit! Simple but effective!
Of course, this is a simple proof-of-concept. In a real malware, there will be more tests implemented (ex: ignore the case) and the list of potential suspicious filenames will be obfuscated (or a dynamic list will be loaded from a 3rd-party website).
[1] https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulefilenamea
Xavier Mertens (@xme)
Xameco
Senior ISC Handler - Freelance Cyber Security Consultant
PGP Key
0 Comments
A few interesting and notable ssh/telnet usernames
Just looked at our telnet/ssh honeypot data, and found some interesting new usernames that attackers attempted to use:
"notachancethisisreal
"
This username is likely used to detect Cowrie (and other) honeypots. Cowrie is often configured to accept logins randomly. No matter the username/password combination used, the login will succeed every few times. This is supposed to provide the illusion of a more "real" system, not just allowing some common default password, and not allowing each login to succeed. The password used with the username is "nopasswordforme73baby.
" Likely to pick a password that is highly unlikely to be used in a real system.
Any login that succeeds with this username and password will indicate that the system is a honeypot. So far, we have only had 31 login attempts with this username and password, all on July 1st.
"scadaadmin"
The name says it: It looks like they are looking for SCADA systems. The password used with this username is "P@$$W0rd". The password has been used "forever" and is popular, but the username is new.
The username appears to be associated with "Rapid SCADA" systems, according to some AI results, but I was not able to confirm this in the manuals. Maybe just a hallucination. However, the default password is either 12345 or blank. They are looking for users who have tried to be more secure. I am not sure how they ended up with P@$$W0rd. They also appear to use "admin" and "12345" as default credentials. It isn't a serious SCADA system if it doesn't have simple default credentials like this.
"gpu001", "gpu002"
These appear to be common hostnames for network-accessible GPUs, but I wasn't able to confirm that these are actual usernames often used for these systems. But attackers are always out for more GPU/CPU power, so they may just give this a try hoping for the best. There are a few passwords that are used with these usernames, like '7777777', 'gpu001@2025', and '1111111'.
See anything else that is new and interesting? Or have any insight into the three usernames I listed above? Let me know! (see contact link on the left).
---
Johannes B. Ullrich, Ph.D. , Dean of Research, SANS.edu
Twitter|
0 Comments
0 Comments