- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
262 lines
24 KiB
Plaintext
262 lines
24 KiB
Plaintext
Episode: 298
|
|
Title: HPR0298: AutoNessus
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0298/hpr0298.mp3
|
|
Transcribed: 2025-10-07 15:51:40
|
|
|
|
---
|
|
|
|
Is this the music hole?
|
|
Uh.
|
|
Hello ladies and gentlemen and welcome to today's episode of Hacker Public Radio. My name
|
|
is Ken Farron and today we're going to be talking about autoneses. Autoneses is the tool
|
|
that we use where I work and while I was reading up on the documentation of it I came across
|
|
a few interesting facts. First of all it's released under the GPL version 3. It's written actually
|
|
colleague here at work and thirdly there was going to be a demo on it last Saturday which I
|
|
attended. I found it very interesting and the topic that we would probably be interested here
|
|
on the Hacker Public Radio network. So I managed to corner the author Frank Bradenreich. I'm
|
|
going to say that right? Right enough. How about you introduce yourself? I'm Frank Bradenreich. I work
|
|
as a security engineer at your work fellows here. Okay very good. I don't know what's the best way
|
|
to begin? Do we start explaining what autoneses is? Or can you give us a rundown first of all
|
|
probably a plot of necessities? Well I can give you a rundown for those that are not familiar with it.
|
|
First of all I suggest they go and check it out themselves by downloading it from nesses.com website.
|
|
But basically nesses is a network vulnerability scanner. It scans from one host. It can scan
|
|
a number of other hosts or an entire network and search for vulnerabilities. So it starts with
|
|
a port scan. Looks for a port to open. It connects to those ports. It tries to guess what version of
|
|
the software it is. Sometimes it knows. Sometimes it needs to guess. And from that it tries to find
|
|
vulnerabilities in that software. This is a fairly well used tool. I hear the guys at pull.com
|
|
security we usually use it quite a bit. Yeah. The SecTools.org which is run by Fyodor, the author
|
|
of a NMAP. And he did a survey in 2005 and 2006 where this tool came as the top value tool for
|
|
security professionals and security interested people. It's not actually released anymore under
|
|
an open source of license. No, it's somewhere down the line and I think it was version 2.1,
|
|
the tenable, the company that builds and maintains nesses decided to switch from free as in
|
|
speech to free as in beer if I may put it that way. And they close the sources of nesses.
|
|
They put in a license model where additionally you could still use it for free and get the plugins
|
|
but get the registered plugins a week later than when they were released. And at the moment you
|
|
have to license it when you use it commercially and can get a if you can get a free license if you
|
|
use it privately. My experience with nesses has been very good but I've noticed that it produces
|
|
a lot of documentation. Yeah, especially in my previous job where I did security consultancy,
|
|
I worked with nesses quite a lot. Yeah, it produces an awful amount of output even if you condense it.
|
|
One of my reports that a client was at some point called the Dicke van Bredeck, just
|
|
had a fat book of Bredeck, basically because of the sheer volume of information that was in it.
|
|
And it's one of the things that you just can't help but noticing when you use the tool, especially
|
|
when you use it regularly. That said, it's very impressive when you come in with a
|
|
ring or a four-paper and you don't put on somebody's desk, kind of. Well, they feel like
|
|
their money is worth it for their consultant. However, if you've got 100 servers and you've got four
|
|
pages per server with the same things over and over again, it's difficult for a admin to kind of
|
|
get their head around that. Yeah, and that's nice with a one-off scan, but if you want to do
|
|
a more regular scan, say you want to scan your infrastructure every month or every quarter,
|
|
that was one of the things I noticed when I got working at Schubert Phyllis and I scanned the same
|
|
infrastructure more than one time. That's really an awful lot of duplication. There's not
|
|
a lot of difference between scanning an infrastructure now and then getting the information
|
|
a month later. And yeah, you're virtually reading the same report again.
|
|
You have me. It's like we've tried to find the 12 differences in two reproductions of the
|
|
the Mona Lisa. Well, that's fairly small. Let's say Rembrandt's Nachtwacht, which is an enormous
|
|
enormous painting and you need to try and find those five differences because that's basically
|
|
the differences you're going to see in your entry report as well. And essentially this is what
|
|
you're trying to achieve with the with the program also necessary. Yeah, it's an idea that
|
|
crept up on me. It's it's funny thing is I didn't actually that wasn't actually the goal I set out
|
|
when I rode autonomous for the first time. Initially, we just looked for a way to automate the
|
|
scans and kick them off at a reliable time. But once I saw how nest is actually stores its findings
|
|
in a backhand, it's like, wait a minute, that compare I'm doing every month is easily to automate.
|
|
Yeah. And and that's what yeah, that's what auto nest is about at this moment really the
|
|
Delta engine. I mean, it's not rocket science to to script something so that you can run it from
|
|
a command line and run it from a Chrome job. But the the backhand is still not rocket science,
|
|
but it's it's handy to have that Delta comparison in there. Okay, can you tell the listeners what
|
|
all of us is? Well, let me let me try and set it out. Obviously, when I did the demo, I had to
|
|
had the stuff there, which which makes it easier to demonstrate. Also, nest is a wrapper around
|
|
nestes. So the first thing you need is a host that can run your nestes demon. Yeah, that can be
|
|
a Linux host can be a Windows host if you want to. Yeah, you need a host that runs the Linux
|
|
and you need another or the same host that has the the nestest client on it. There's a bunch of
|
|
scripts around it that you can schedule firecrime job or can run manually to actually do a scan and
|
|
a command is handling called do dash scan. Yeah. So you start off, you've installed it. Well,
|
|
you start off by downloading it of my website, but you install it specifically written with with a
|
|
Linux Unix system in mind. So I haven't actually tried or tested the scanner on any Windows
|
|
platform. Yeah, you run it and then you need to set up a scan and you add a config file which
|
|
specifies where your nestes demon is running. You fill up a host file which defines what host you
|
|
are scanning and you run your first scan. You specify if you want a save mode scan or a complete
|
|
scan and then it starts to scan to do a nestest scan. A few points that we probably want to mention
|
|
here. You should not scan any network that you do not have explicit written permission in order
|
|
to do that. Yeah. This is a sort of default warning, so just be careful about that. Ideally, you
|
|
could scan your own home network, for instance, or if you're in a university or something
|
|
you're in a min for a network, you could scan that with permission from your employer.
|
|
There's a golden rule when you're doing Pantas commercially and that is get your get out of
|
|
jail free car first before you actually do anything. Having said that, so taking you have your
|
|
permission to scan something, you put that target in a host file and you run the scan.
|
|
What it does, it does the network scan, just as a normal nestest scan will do, but it
|
|
immediately converts the results to an HTML file, an XML file, and a NBE file and the NBE file is
|
|
nested back end. Then the part that I call the Delta engine kicks in and initially it will mark
|
|
all your findings as new. So you then can go to the website of Autonesses and with website,
|
|
I mean the local website, because Autonesses has a web GUI, so into Apache. Yeah, it plugs
|
|
into Apache. It's actually a classic CGI. What's written in Perl primarily with some bits of
|
|
shell script where I needed interaction with the shell, but it's a classic CGI, so there's no
|
|
reason why it shouldn't plug into another website, but the web server, but I haven't tried that.
|
|
So what it does is when you have the findings, it tries to categorize them for you, and the first
|
|
categorization is new, meaning this is a finding I've seen for the first time. So basically when you
|
|
run your first scan, everything is going to be new. Yeah, when you run your first scan, everything is
|
|
going to be new. Now, when I say finding what I mean is that each host has a number of open port,
|
|
each open port can have one or more plugins fired against it, and that plugin has an output.
|
|
So the combination of host, port, plugin, and the output of the plugin is what we've defined as a
|
|
finding. For instance, if you have a web server that's running both on standard HTTP and HTTP
|
|
s, it can fire the NICTO plugin against that. NICTO is another security scanner. So that can fire
|
|
both against port 80 and against port 443, and both the outputs will be in auto nest. So that's
|
|
two findings. That's two findings. Okay, so say, for example, we have run it against a workstation
|
|
or something, and you're finding that there's a port open on 80, which you think is okay, and you've
|
|
got a port open on, while you got a port open on 84, 443. Yeah, one port 80 isn't okay, and 443,
|
|
you're thinking is okay. What do you do? Yeah, basically what you go do is look at each of the
|
|
findings, and the GUI lets you sort out and filter the findings by host, by plugin ID. So I could
|
|
decide to look at all the NICTO outputs in one go, and then look at all the ports scanner outputs in
|
|
one go, and look at all the other plugins that could fire, which is sort of the way I prefer it,
|
|
but that's my personal preference, or you could go and look by port, so you could say, okay, I'm
|
|
first going to look at the findings from port 80, then look at the findings for port 443. So in this
|
|
case, if you looked at the findings for port 80, we found them all okay. There's basically an option
|
|
in the GUI, which has bulk update, and I can then, as a user, choose for a new finding, I can choose
|
|
between two statuses to assign to a finding, so either the status, no issue, which means I'm okay,
|
|
I'm happy with that plugin firing. You expected that, you expected the result that you found,
|
|
or I didn't expect it, but it's clean. Okay, yeah, it's basically whether or not there's
|
|
risk associated with that finding, not if I expected or not. Yeah, okay. And then if there is a risk
|
|
associated to it, I can mark it as being open, so this is something that I need to deal with.
|
|
Very good. So in your case, what we just said, the two, let's just talk about the two NICTL
|
|
reports that we got, one for port 80, one for port 443, so the one for 80 was okay, I've marked
|
|
that there's no issue. The one for port 443 had a risk with it, I marked it as open, and then
|
|
I'm going to do something that will make me fix those findings. For instance, I'm going to get a
|
|
phone-erable CGI script of that port 443. So in terms of the amount of work on the first scan,
|
|
it's not any less than it would be if you just did an all-in-ass scan or an SS scan yourself and
|
|
went through the findings. Yeah, it's not less work. What I found myself doing lately though is
|
|
when I ran a NICTL scan on a separate host, I actually took the NBE file and put it in alternatives
|
|
because I like the GUI and I like what the GUI does. So I can basically take off the findings that
|
|
I've done and it helps me organize my analysis process of the findings. But in terms of the number
|
|
of findings you have to look at, it's exactly the same. So it's still, for the first time, it's still
|
|
a useful tool to go through to make sense of that huge amount of documentation. To help you digest
|
|
that huge amount of findings that you will get if you scan a sizeable network. Okay, so that's
|
|
interesting enough, but where it has a lot of value is when you go back and you do the second scan.
|
|
Yeah, so you've produced a listed report for the system administrator, which may be yourself,
|
|
and you say, okay, this needs to be done, this needs to be done, this needs to be done, and you go
|
|
back two weeks later and then you run another scan. Then what happens? So we will regenerate that
|
|
amount of findings, but then it will do a Delta and comparison. We've made some changes to the system,
|
|
hopefully to address what we found the first time you run the scan again, and it comes with
|
|
basically the same or a slightly different amount of finding. That's a point where the Delta
|
|
engine will kick in, and the Delta engine will try to determine a new status for the findings
|
|
based upon what's the finding previously there? Is there something that we've now seen, for instance,
|
|
has a new open port emerged? Has a port been closed? It will look at that, and also it will look at
|
|
the output of the plugins. So for instance, in the case of the NICTO plugins, we just talked about
|
|
say port 443 would now be closed. That specific finding NICTO and port 443 on this host would be
|
|
marked as gone by the Delta engine. On the other hand, if it wasn't just gone, but you had deleted,
|
|
for instance, a vulnerable CGI from that website, it would be marked as changed, because the output
|
|
of the NICTO scan would change. So it would change, say, hey, unchanged, and then the plugin output
|
|
would change. So you need to look at it again. That's basically what change means. And by the same
|
|
mechanism, say that you have done this initial amount of work getting your system to a state where
|
|
you're happy with, you're on the scans, and you don't see any Delta's, say, then you'll update
|
|
NICTO and its plugins, and it detects another vulnerability. Yeah, that will be marked as new,
|
|
because that's a new plugin, it's a new combination of host port plugin, so it will be marked new.
|
|
So the whole idea behind the Delta engine was, instead of looking at two big paintings and
|
|
trying to find the differences, let's stop looking at the two paintings, let's try and find the
|
|
differences automatically and just look at the differences. So filter out the noise.
|
|
Filter out the noise, dampen the noise, and try to get the signal, basically get the signal out
|
|
of the noise, so that you just have to look at your signal. And that works pretty well in the
|
|
demo. I go from an initial 40 plus findings, and when I do the second scan, there's only something
|
|
like 20 findings that we have to look at. When we do the third scan, we just make my new changes
|
|
to the network. There's only four findings that we need to look at. And that's the experience,
|
|
I have in my daily work as well. We actually use it here. We use it here. In January, we scanned
|
|
over 4,000 IP addresses with it. They produced a total of 8,777 nestless findings in the
|
|
month of January. It's important to say that that's not all issues. No, no, it's not all issues.
|
|
I mean, nestless is also very good at reporting. You have a web server here, and this plugin
|
|
thinks everything is all right, which is kind of what we're doing. You have a web server running,
|
|
it reports that it's Apache. That's how you want to configure it. Thank you.
|
|
Which is good to know if you're running for the first time, but sort of becomes a very boring
|
|
message after the 24th or, you know, probably a little bit earlier.
|
|
And the danger is, of course, if you're going to these findings yourself, that you're scanning
|
|
down through this, and you go, okay, I've seen that before, seen that before, seen that before,
|
|
and you missed the one that's in between. That's where auto nestless really shines through.
|
|
As far as the automation goes, there's automation in running the nestless scans, but then there's
|
|
also so automation in running the reports and emailing. Can you tell us a little bit about that?
|
|
When it finishes comparing to scans, it will send out a condensed report out about the number of
|
|
open findings it finds, open new and changed findings. It will also output some of the
|
|
delta as it's seen so that you can make, yeah, a quick judgment. Is this something I need to look at
|
|
now or at my leisure, but the report that is sent out is intentionally kept fake because I don't
|
|
trust the transport mechanism of email. I mean, emails in the clear store and forward,
|
|
means if I send out an email, there's always a copy somewhere. That's why I wasn't always those
|
|
little notes at the bottom of an email, make me laugh, because you should make a copy. Well,
|
|
I need to deliver this for you. Sorry, side snapping. If you really want to get the depth and the
|
|
detail, you need to go look at the web web GUI. At the moment, there's still a manual processing
|
|
behind the findings. When we talk about the road map, I'll address it a little bit more because
|
|
that's what I want to talk to us about the road map. Currently, it just concentrates around
|
|
nestless findings. So it will go into yes, this plug-in fire, that's the output. And when I report
|
|
back to my colleagues, who need to fix the findings, there's an aggregation level above that.
|
|
Yeah. And yeah, if you want to call that issues or incidents or whatever name you want to give
|
|
that, and I haven't decided on the proper name yet. Observation? Yeah, observation. I think I'll
|
|
stick probably stick to issue. Okay. Yeah. Basically an issue of a porch being open or a vulnerable
|
|
version of software being run can be expressed in one or more plug-ins being fired. But also,
|
|
a single plug-in that fires and gives you some output of an HTTP demon can tell you that A,
|
|
it's an old HTTP demon, B, it reveals that via the headers, it reveals its internal IP address.
|
|
So a single plug-in, a single nestless finding, can actually have multiple issues in it.
|
|
So the idea at the moment is to extend the Autoneses GUI to also include that part of reporting.
|
|
Because what I noticed is that it's still hard to keep the consistency at them,
|
|
in telling the system administrators what's wrong and the nestless findings in the GUI.
|
|
That's still a, yeah, a bit of a, it's still a chore. So that's really where I want to
|
|
extend and bring Autoneses to do more and more of that vulnerability management to get a business
|
|
term in there. Okay. Fair enough. Anything else on the room up? Clearly there's open VAS
|
|
integration. We talked about nestless going close source. When nestless went close source,
|
|
the open VAS project checked out the latest open source version from Nestes. Basically they
|
|
did a search and replace for nestless dash open VAS and the open VAS project continued on that
|
|
road map. It's also now starting to get further and further away for nestless because it's going
|
|
its own way. But I've had several requests in for open VAS compatibility. So that's, that's
|
|
high on my road map. Also currently the quote unquote database I use is a, is a flat file system.
|
|
So if you install Autoneses and you go look into the far directory, you'll see a directory per
|
|
configured scan. In that directory, there's directory findings. In the findings,
|
|
directory is a directory per host. In there, there's the directory per port. And in there,
|
|
there's the directory per plug-in. And below that are our single files for each and every time
|
|
the scan was fired. And that actually works pretty well until the number of findings goes up. And
|
|
yeah, perglobbing tends to get slow when you have thousands and thousands of files to look at.
|
|
There's some optimization that can be done there. Also putting DBI support in there and thus
|
|
linking it up with a relational database, something like mySQL or Postgres. Yeah.
|
|
Something like Postgres will actually a help scalability and be help with extendability.
|
|
So we can extend the schema and put more vulnerability management capabilities in there.
|
|
Yeah, with the request for open VAS, with the request from VOTOR to put NMAP in there,
|
|
with a request from the guys who maintain NICTO to actually put, to see actually if I could put
|
|
standalone NICTO scans in there. If I'm going to normalize things and do multiple support,
|
|
maybe multiple scanner support is something that I want to add in the future as well. But that's
|
|
the far distance that the multi scanner support. So if you do this in your own time or if you do
|
|
it here on work or a bit of both, to be honest, I mean the boundaries between my private and my work
|
|
time tend to be not as sharp and clear as one might think. It is a work sponsored project
|
|
in the sense that me working on alternatives is part of my job. Then I can, I'm inclined to often
|
|
work on alternatives during my free time as well because it's, yeah, it is my baby if you want to
|
|
put it that way. So you're right, but super philosophical on the copyright. Well, first there's
|
|
the legal part of that basically Dutch law states that if you do anything with resources from your
|
|
work, so if you use your laptop or your boss's time to make to make something, it is copyright
|
|
of the company. On the other hand, I did write it in a slow summer where I set several days,
|
|
slash weeks of work time into it. And I think it's only fair that Schubert Phillips has a copy
|
|
right to it as well. But that copyright, they actually have released onto the GPL version three.
|
|
Yeah, that was a logic behind that. Logic behind that was that we actually use quite a lot of
|
|
open-source software here at Schubert Phillips, primarily one being, well, Sea of Engine,
|
|
obviously, but also Nadios Ranzet, MRTG, RRD tool, the Lambe architecture. It was about time that
|
|
we did something back. To be honest, I wouldn't have gotten this far with the program if I kept it
|
|
in my own circle. Whenever I release strangers on the system, I found that I tend to do things that
|
|
I don't expect because I had a certain mindset when I developed this. And I don't break free of that
|
|
mindset easily, whereas somebody else who comes in blank, all of a sudden finds and starts setting
|
|
illogic settings. Because it's logical to them and then I found that I need to adapt my program to
|
|
give a little bit more guidance to them. Let's put it that way. So how can any of the listeners
|
|
help out? First of all, I love feedback. So just using the product and let me know about it.
|
|
Report bugs too. And help me report bugs. There's an autonomous website, autonomous.com,
|
|
but the bug tracking system and the release system are on source forage as is the
|
|
source repository. Yeah, that's where you go to get it and file autonomous.com. You can contact me
|
|
as well. Positive and negative feedback. Highly appreciate it. Constructive. Constructive feedback
|
|
even higher. Highly appreciate it. Yeah, that's where where the best help can come out. If there's
|
|
somebody who's willing to look into the open fast compatibility, it's been on my list, it's high
|
|
on my list. But yeah, I've got nesses and open fast on it. So if somebody is interested in using
|
|
it straight with open fast, then that might accelerate getting that feature out as well.
|
|
Okay, I think we'll wrap it up there. There's just one thing I want to warn the listeners is that
|
|
if you do run nesses, there are some dangerous plugins that can bring down production systems.
|
|
So be careful. Do you ship with recommended? There is a safe configuration, but safe should
|
|
always be taken with a grain of salt. I'm not sure if that's a valid English expression.
|
|
Yeah, it's a relative safe setting that's in there. There's nobody who does any
|
|
pen test who will guarantee that any system will survive their pen test. It's always something
|
|
that they will exclude and that's also something that we have to, yeah, don't try this at home.
|
|
We're highly trained professionals, etc. Well, actually do try that home. Don't try it on your
|
|
neighbors. Okay, Frank, thank you very much. And if anybody has any feedback, you can send it to me
|
|
at can.fanon.gmail.com. Frank, you're working on an English version of the demo. We'll try to get
|
|
that up as soon as possible. Yeah, there will be a screen recording of the English version of the
|
|
demo, which will probably be posted on the Autoneses website. Okay, and your website is
|
|
www.autoneses.com. Okay, thank you very much ladies and gentlemen. And tune in tomorrow for another
|
|
exciting episode on Hacker Public Radio. Thank you for listening to Hacker Public Radio.
|
|
HPR is sponsored by Carol.net, so head on over to C-A-R-O dot N-E-C for all of us in the
|