Live data from Hacker News

Brute.Fail: Watch brute force attacks fail in real time

brute.fail

121–130 of 268 posts

Re: Brute.Fail: Watch brute force attacks fail in real time

#121

Some of these credentials could be of legitime users who have just mistyped the IP address.

In the intro text it specifically says:

No legitimate services are offered on the addresses receiving these attempts, so there is no chance of a real user accidently submitting their credentials. (Yes things other than SSH occasionally show up)

Re: Brute.Fail: Watch brute force attacks fail in real time

#122

Earlier quoted context omitted.

This. I really do not understand why people use fail2ban when the threat is somewhere else. It won't stop a ddos but will certainly, at some point, prevent you from logging in.

> This. I really do not understand why people use fail2ban when the threat is somewhere else. Fail2ban keeps my log short enough that I can review them daily, I don't have to sift through thousands of login attempt. > It won't stop a ddos but will certainly, at some point, prevent you from logging in. Yup, losing my key and having no password access will do that.

I'm not sure manual log scanning is all that interesting. You probably want to produce a list of successful logins and review that regularly.

Re: Brute.Fail: Watch brute force attacks fail in real time

#123
post #84

Earlier quoted context omitted.

This, and move the endpoint on an uninteresting port to lower the noise in the logs

... and avoid automated attacks in case a 0-day in the pre-authentication OpenSSH server code shows up

If there’s a preauth RCE in ssh, I’m sure threat actors will start scanning non default ports once their hornets have hit critical mass.

Re: Brute.Fail: Watch brute force attacks fail in real time

#124
post #58

So funny story, for a while I worked on a 'reverse' exploit. Which is to say morphing the response from ssh to the client with large malformed packets. The idea was to crash the client making the request. In my case I found these attacks would have like 6 to 10 attempts from the same source address. By time stamping the requests, I could evaluate if the next attack from the same address came more quickly or more slow…

Disable password authentication and fail2ban becomes completely unnecessary.

I prefer libshield but one thing I've found is that annoyingly sshd didn't use PAM to check if the login user is valid apparently (so it never fires when only using keys).

Re: Brute.Fail: Watch brute force attacks fail in real time

#128

What about an actual user fat-fingering their username but entering their password correctly? Would this publish that attempt publicly?

From the site:

> No legitimate services are offered on the addresses receiving these attempts, so there is no chance of a real user accidently submitting their credentials.

Re: Brute.Fail: Watch brute force attacks fail in real time

#129
post #81
post #64

This is amazing! Are you open sourcing this? Can others stream their logs to your servers and have a crowdsourced list of attackers in real time together with their activity?

See abuseipdb.com if you care about this.

Thank you!

Wish the ISPs would subscribe to this and blocked traffic from the abusive IPs in their networks

Clicked on a random IP on the front page, it said it’s from Palo Alto Networks in Santa Clara, that it was first reported in 2022 and the last report was 5min ago. So that IP has been doing shady stuff for months and it seems their ISP (Palo Alto Networks) doesn’t really care

Re: Brute.Fail: Watch brute force attacks fail in real time

#130
post #7

That’s neat. What’s the total volume per day? Are the passwords themselves being escaped in the final UI rendering? Otherwise you’d have an XSS for a password like “ /* code */ ". EDIT: Unless it's happening on the server side where it's being saved, I don't think they're being escaped: col1.innerHTML = ' ' + msg.src; col2.innerHTML = msg.proto; col3.innerHTML = ' ' + msg.u + ' '; col4.innerHTML = ' ' + msg.p + ' ';

Sorry, but this is not the way. It's like saying, "but I am escaping my inputs on sql with my function"... instead of doing the right thing.

The equivalent code is really not that hard:

    const span = document.createElement('span')
    span.setAttribute('class', 'fi fi'+msg.cc)
    span.setAttribute('title', msg.cc)

    col1.appendChild(span)
    col1.appendChild(document.createTextNode(msg.src))

    col2.textContent = msg.proto

    let code = document.createElement('code')

    code.textContent = msg.u
    col3.appendChild(code)

    code = code.cloneNode(true)
    code.textContent = msg.p
    col4.appendChild(code)

or something in these lines.. you get the idea
Post reply on HN