atk > faq (frequently asked questions) Last update: 2005/01/16 by Marc Ruef

FAQ (Frequently Asked Questions)

What is the ATK (Attack Tool Kit)?
The three letter acronym ATK stands for Attack Tool Kit. This is an open-source software for Windows that realizes vulnerability checks and enhances security audits.

Why should I use the ATK?
If you are interessted in checking the security of a system, you can do this with various tools and techniques. The ATK is one of the possible choices to fulfill your task.

When should I use the ATK?
The ATK is perfect to verify a specific vulnerability, perhaps found by another scanning or enumeration utility. If you are not shure that your (closed-source) security scanner has just detected a false positive (or negative), you could determine the real existence of the potential flaw. It is also possible to do an real exploitation of the weakness, a very important and characteristic step in every penetration test.
 

Mapping >>> Portscanning >>> Enumeration >>> Exploiting

Is it legal to use the ATK?
The use of security scanners is usually legal as long as you have the permission to check a target system and the testing does not affect other systems (e.g. routers of other networks).

Is the ATK not a tool just for skript-kiddies and hackers?
This is a philosophical question and the answer is not easy. The ATK can make an attack easier - But it is not possible to hack a system without understanding the exploited vulnerability or handling of the software. The ATK was written to make my work (security auditing and penetration testing) easier and more efficient. I think many people in the IT security business can gain the same effort of the ATK so I made the whole project public. I do not want to support people who attack or destroy systems just for fun or profit. But it seems to be impossible to publish a tool and not making it reachable for evil people. As long as people use the ATK for testing and securing their systems, the ATK project will be public and available for everyone who wants to take a look at it.

Why should I prefer the ATK instead of an other security scanner (e.g. Nessus)?
The ATK has in many ways different approaches to fulfill a task. Let me show you an example: The checking of a potential vulnerability is done like in Nessus and many other vulnerability scanners. But in Nessus you don't have the ability to do a slight modification of a check. The ATK gives you the availability of changing everything in a plugin withing seconds. I usually choose a few security scanners for a security audit. So I can do some specific checks very optimized and cross check possible flaws. You find a listing of the well-known security scanners with pros and contras in the links section. The following table shows some possible criterias to evaluate a vulnerability scanning solution (September 2004):
 

.
License
Plattforms
Standalone or server*
Download size
Available plugins
Could plugins be edited
Plugins format
Plugins update
Scanning templates
Report templates
Report configuration
Debbugging possibilities
CVE names
Attack Tool Kit 4.1
Open-source
Microsoft Windows
Standalone
1 MB
over 350
Yes, XML/ASCII editor or internal/external editing tool
XML/ASCII files or NASL
Automated update over HTTP or manually
All available fields in a plugin (e.g. port or severity)
Yes
Yes
Real-time attack visualisation and connection window, verbose log files and response archive
Output and searchable
Dante Security Scanner 2.1
Open-source
Unix/Linux (core) but usable by any web browser
Server
30 KB
47
Yes, ASCII editor
Shell scripts
No
Intense
No
No
Log files and response archive (for administrator only)
No
GFI LANguard Network Scanner 5.0
Freeware and commercial
Microsoft Windows 2000, XP or Server 2003 only
Standalone
3 MB
approx. 50
Slightly, ASCII editor
ASCII files
Automated update over HTTP
No
Commercial only
Only in licensed version
Real-time connection window
Output
ISS Internet Scanner 7.0
Commercial
Microsoft Windows 2000 and XP (very old version available for Unix/Linux)
Standalone
35 MB
?
Slightly, software configuration
Binary files
Automated update over HTTP
Plugin families, host families, intense and security level
Yes
Yes
Log files
Output
Nessus 2.2.1
Open-source
Unix/Linux (server and client) and Microsoft Windows (client only)
Server
5.6 MB
over 5'780 (some are local only)
Yes, ASCII editor
NASL or C files
Automated update over HTTP/HTTPS
Plugin families
No
No
Response archive
Output and searchable
Symantec NetRecon 3.5
Commercial
Microsoft Windows
Standalone
20 MB
approx. 70
No
Binary files
Automated update over HTTP
Intense
Yes
Slightly
Response archive
Output

* If a standalone or client/server based solution is better, depends from the needs of the user. So many users don't like client/server based solutions because of the overhead. In this comparisation I use the possibility of client/server usability as a pro.

Is the ATK better than other security scanners?
The answer for this question depends on your needs. In a very large security assessment you may count on the high speed of GFI LANguard to gather all informations as quickly as possible. In a specific penetration test you may want do have the ability to do a quick modification of an access attempt. In this case the ATK may be the first choice. The ATK is more an addition to classic security scanners (e.g. nmap or Nessus) and not a replacement.

My anti virus solution says there is a virus in the ATK. What is this all about?
Some anti virus solutions list the ATK as hacking tool or exploit. But this does not mean, the tool is nor contains a virus. Some anti virus solutions alert also if a joke utility, client part of a remote control software or a popular security tool is found. The ATK 1.0 was first detected on 26/07/2004 as HackTool.Win32.AttKit.a. How the anti virus solutions will react on ATK 2.0 or if they are able to detect it is not know yet. The reason for the detection of a non-virus is, that the developers of the anti virus solution can advertise their software with more "detection rules of computer viruses". Thus, this is just a marketing strategy. Some anti virus solutions are able to de-activate the detection routine for non-viruses as like security utilities are. If you have got a problem with your anti virus solution because you want to use the ATK, please deactive such a detection. ATK is open-source so everyone has access to the source code of the software and is able to compile from these open sources. If you don't believe a compiled version of the software, please feel free to analyze the source code and report problems. All files from the ATK project are scanned for viruses on a regulary basis with different and up-to-date anti virus solutions (e.g. TrendMicro Antivirus, Avast Antivirus, AntiVir Personal Edition). To be sure that there is no virus infection, please scan the files with your anti virus solution too and contact me if a an additional possible infection is found.

What anti virus solutions detect the ATK as hacking tool or exploit?
As far as I know, the following anti virus solutions are able to detect the ATK. If you know another software with the ability of detection, please inform me.
 

Name Comments
G-Data AntiVirenKit 2004 Perhaps the first detection routines for the ATK 1.0 (version 2.0 not confirmed yet). Perhaps they were looking for web sites also using the term ATK, because AntivirenToolKit may have the same acronym.
Kaspersky Anti-Virus Personal Pro 5.0 Detects ATK 1.0 (version 2.0 not confirmed yet).

When I try to start the software I get an error message that some OCX files are missing. What now?
As described before, ATK is written in Microsoft Visual Basic 6.0. Visual Basic projects need often some libraries to run correctly. The three files COMDLG32.OCX, MSCOMCTL.OCX and MSWINSCK.OCX are used to display some special elements and to do the socket handling. You have to download these files and put them in the system32 directory of your Windows directory (usually C:\WINDOWS\system32\). You'll get the files in the download section.

When I am starting the ATK I get the error message that an OCX file may be outdated. What now?
This error occours if there is a version conflict of the specified OCX file given. If the OCX file in the working directory of the ATK and the installed OCX file in the system32 directory of your Windows operating system is not the same, you will not be able to start the application. This happens usually withing older Windows systems as like Microsoft Windows 95, 98 and ME. The newer Windows 2000 and XP are usually not affected. There are several ways to solve this problem. The best one is to backup the older file and to overwrite the older version of the file with the newer one. Usually copying the OCX file from the ATK directory to your system32 directory (e.g. C:\WINDOWS\SYSTEM32) fixes the problem. I may prevent such errors in upcoming releases of the ATK by using an installer and setup routine.

Is it possible to limit the scanning features to let admins just audit their hosts?
No, this is not possible. Everyone who could start ATK on his machine is able to use the software with all the features. Only Nessus allows such a limitation of scanning. Symantec NetRecon has the ability to limit the program start with a simple password.

Why is the ATK not client/server based?
In some discussions came the request that ATK should be client/server based as like Nessus is. This approach has some interessting advances, but they don't seem important for the classical goal of ATK. But it may be possible that future versions of ATK are client/server based.

Is it possible to run the ATK under Unix/Linux?
Not really. I did some testings with the ATK 2.1. It was possible to start the software within my Debian GNU/Linux wine environment. But when starting an attack there was an error message. When I was developing the ATK I was not very aware of beeing able to run the ATK with wine. But I think in further releases this compatibelity may be available. If somebody knows how to do this successful, please feel free to contact me.

What kind of plugins are supported by the ATK?
First the ATK plugins itself are supported. Additionally in NASL written Nessus plugins could be imported. But this part of the code is still experimental and won't sometimes work correctly. If there is an NASL and an ATK plugin for the same check around, please prefer the ATK plugin. It may be possible that in the future other plugins or methods are supported.
 

Why was Nessus NASL support not implemented in ATK 3.x?
The support for Nessus NASL plugins was implemented since the first official release of the ATK. This feature was very experimental and just a bunch of simlpe pattern based plugins were supported. With the release of ATK 3.0 I decided to drop this highly experimental feature to minimize the size of the project and to increase the speed of the application. As I get many emails concerning this decision, I began to re-introduced a completely new routine for the Nessus NASL support in ATK 4.0. It is possible to load most of the network based plugins. Especially pattern matching based ones are imported very well and usable as like the originals. If you are interessted in using Nessus NASL plugins please upgrade at least to ATK 4.0.

What is a silent check?
A silent check is a check that is done without touching the target host. You could gather a banner of an host and then look if any of the imported plugins detect a potential flaw. This increases the speed of an audit enormely. Nessus call this feature "KB saving" (Knowledge base). It is documented in the Nessus project at http://www.nessus.org/doc/kb_saving.html. Other security scanners do sometimes nearly or exactly the same attempt for two different checks. That causes a higher amount of network traffic and data analysis. Silent checks should always be activated. You won't loose anything.

I don't understand the points in my scan report. Can you help me?
Not really. It doesn't make sense that you use a security scanner if you don't understand how security works. You could post your question on a board and hope that somebody help you out.

Is the ATK able to fix a detected vulnerability automaticly?
The plugin may use the detected vulnerability to send a command that fixes the exploited flaw. This needs some additional requests in the plugin besides the detection and exploiting procedures. Be aware that this may cause uncontrollable conditations - As usual in automated reaction and fixing environments. It is planned for a further release to split the plugin request procedures in different parts. The normal procedure will detect the vulnerability. Another one will be possible to fix a detected bug with additional techniques.

In which language is the ATK written?
It is written in Microsoft Visual Basic 6.0. See http://msdn.microsoft.com/vbasic/ for more details. It is planned to port the software into Visual Basic .NET - Perhaps ATK 3.x will be using the .NET framework.

Why is the ATK written in Visual Basic (VB)?
A question I hear all the time. Well, first I started the ATK as a very handy tool that should realize small checks (e.g. banner grabbing). I enhanced the software more and more so I get a full functionally vulnerability scanner. Now I am to lazy to do a C port - or wathever - of the software. Visual Basic has some really ugly and nasty points, but most of them could be gone around with a smart programming technique. Most of them can be pointed out by automated software. I documented some of the used optimizing techniques. See the documents for the essay. As long as the software works fast and realiable, I don't see a really good reason to invest a large amount of my time to port the software. If somebody else would like to do it - a Linux-port would be great -, I will support the idea.

The source code is sometimes not really easy to read. Why?
The main goal of a productive software is to do the wanted work. I think that this wanted work should also be done so fast as possible. So I spent the most time to optimize the source code for fulfilling the goals. And it is no surprise that if you optimize a source code some parts of ot are not easily readable anymore.

Why is the ATK written for Windows?
On Unix/Linux there is Nessus around. A very good software to check an environment for potential flaws. A Windows-only version of Nessus is not available. There are just some more or less good ports of the Nessus client around. But you need always a Nessus server on an Unix operating system - Without it Nessus could not be used. On Windows there are some vulnerability scanners around. GFI LANguard is good to gather the information in a network. It is shareware. The big players are ISS Internet Scanner and Symantec NetRecon - Both are closed-source and commercial. Thus, you have nearly no chance to do an security audit on Windows without be dependent from Unix/Linux or spend a lot of money for a commercial solution. I wanted an open tool for Windows-only that help me to do the work I could just do with Unix/Linux or a commercial product on Windows. See "Why should I prefer the ATK instead of an other security scanner (e.g. Nessus)?" for more details of the benefit of using the ATK instead of other similar solutions.

In which language are the ATK plugins written?
Every ATK plugin is saved as a single ASCII file. So it is possible to edit them without specialized software and knowledge of proprietary encoding techniques. A plugin exists as a summary of different fields. These provide values to specific topics (e.g. name of the plugin, used protocol). The scanning routine of a plugin is written in a very handy scripting language. You'll find more information on how to write a plugin in the plugin documentations.

How long does it take to write a vulnerability check?
Well, this depends from your knowledge about the ATK plugin structure, the use of the prefered editor and the complexity of the check you want to implement. I create the most ATK plugins with the internal plugin editor. A normal check or exploit attempt takes me approximiatly 10 minutes to develop. It is no surprise that I was able to write more than 20 plugins in a single day. This proofes the easyness and modularity of the ATK project and the ATK plugin scripting language. Changing an existing plugin is also possible during runtime within a few seconds.

How do I write a new plugin and how should it be published?
First of all I have to say that the plugin developement is working very independently. This means everybody is able to create new plugins and publish them. If a ATK plugin developer thinks his plugin should be published in the official ATK plugin repository, he could send them to me and I put them online. All the credits for creating a plugin are given to the initial developer (there are special remark fields for that supported!). I think this is not a problem because just a bunch of people is writing new checks. The chance that two people develope the same plugin at the same time is very small. And if this happens it may be possible to merge the files to get a better plugin with more detailed informations. Or perhaps we find out that there are several ways to detect the same flaw. The technical developelemt of an ATK plugin is very easy. First of all download the (latest) release of the ATK software on the project web site at http://www.computec.ch/projekte/atk/ - After unzipping/installing the software start the application by opening the EXE file. When the application is loaded, click on the Edit button in the ToolBar menu. A new frame should open. In this one you are able to create new plugins or edit existing ones. As you can see there are different fields that have to been filled. Usually fields like plugin_name or bug_description are recommended due the usefullness for the users. The core fields of a checking are the detection and exploiting routines. (see the Attack Data tab). In these the whole "programming" of the checking is done. There are different simple commands used to open network connections, send data and search for patterns. The easiest way to get in touch with the ASL (Attack Scripting Language) is to make a click with the right mouse button in one of these procedure textboxes. Afterswards a small context menu is opening. By using the "Add command" and "Add template" entries new commands can be inserted very quickly. I am able to create a working pattern matching based within 5 minutes. If this is the first time you are using a scripting language or creating a ATK/NASL plugin, you may copying and editing an existing plugin. Very easy to understand are most web server checks with pattern matching. A good example is ATK plugin id 1 (Apache web server detection). The commands are "open|send HEAD / HTTP/1.0\n\n|sleep|close|pattern_exists HTTP/1.[0-1] ### *Server: Apache*":

  1. First wie "open" a connection.
  2. Then wie "send" the HTTP command "HEAD / HTTP/1.0\n\n". The \n is a special character for a new line.
  3. Afterwards we "sleep" to wait for the response of the server.
  4. Now we "close" the connection.
  5. And last but not least we are checking the existence of a pattern in the response.
There is a regulary expression "HTTP/1.[0-1] ### *Server: Apache*" used which is not so easy to understand. But with this one we are able to grep and verify the banner of the web server response. If the banner exists, the plugin is successfull and the flaw is found. If you want to detect another web server, just use another regulary expression in the pattern_exists command (or involve new send commands, ...). If you have done your first ATK plugin, just save the file and send it to me. I will take a look, do some corrections if needed and report them back to you. Perhaps I have a few hints how you could create a plugin better, faster, quicker, easier or nicer. Everyone who gave it a shot was able to produce "very nice" plugins after a few minutes! Do you have questions or suggestions, please drop me an email. I do really appreciate the work everyone wants to do for the ATK project. If you don't have the time or energy to support it (anymore), this is not a tragedy. Feel free to do what ever you want as long as nobody gets hurt ;) !

How is quality ensurance of the software and the plugins done?
I compile, check and test new software releases and plugins on and against different systems. If large parts of the code has changed, my beta testers have to verify first, that the new parts are stable. For example the alpha and beta test before the first release of ATK 1.0 needed over 3 months: Alpha test from 2003/11/01 to 2004/01/20 and beta test from 2004/02/11 to 2004/02/30; this included houdreds of compilations and thousends of virtual security audits. If the new release passes the tests, the new version is put on the web site. I use the ATK in all of my security audits and penetration tests, so I find in-the-wild most bugs very quickly. Also the public release of the software and the source code help to improve the solution.

Why were the initial alpha and beta test not public?
These tests were done with an absolutely unstable version of the software. I knew that there were many bugs around and some of the implemented features did not worked properly. But I wanted to see what some of other people I know they understand the principles of my idea would find. They did a great work and pointed out some bugs I haven't seen. This generated enough work for me so I have had enough to do the last two months before the initial stable release of 1.0. It would be senseless to offer the buggy software to a large amount of people, because this would generate an information exchange overhead that decreased the programming productivity. And the programming productivity is the most important before an initial release.

Which license underlies the ATK and its parts?
The ATK and its parts underlies the General Public License (GPL) if not . The use of the software is free. Also the source code is available and can be edited as long as the edited version underlies the same license. Please read the GPL for more information.

What is the benefit of an open-source scanning solution?
The first benefit is the ability to see into the product. If you have question in how is something done or why this result is given, you can do a first checking of the source. False positives and negatives could be eliminated with a small investigation. Stephen Northcutt and Judy Novak also postulate in their best selling book "Network Intrusion Detection" such a state for Intrusion Detection Systems (IDS). An open-source solution does also ensure a global developement of the software. Because everyone could check the source code, bugs and errors could be found and fixed very quickly. This is the main reason, why Nessus grow to such a big player in the business.

I found a bug in the software or a part of it. What should I do?
The best approach is to send me a bug report. This should include a short description of the potential bug. Perhaps I will ask a few questions so I can reproduce the bug. Then I will fix it as soon as possible. It may also be possible that you send me a patch for the source code, if you can do this part for yourself.

I would like to have some new fields in the plugins. Can you implement them?
Sure. Just send your suggestions to me, I will check this and try to implement your wishes in the next release of the ATK software. The solution is not limited in such cases. If you think my implementation procedure is not fast enough, feel free to do the changes in the open-source code yourself. I would be happy if you let me know which changes you have made, why and how. So I could add them in the next official release of the ATK software too.

How can I support the ATK project?
You can support the ATK project in many different ways: This starts from putting a link to the project on your website, goes to writing plugins and ends on developing the core parts of the software. If you want to help the project, please drop me an email so we can co-ordinate the further steps. Please be aware that I need sometimes a really long time for a response.

I want to write about the ATK project. Can you support me?
Please feel free to write about the project (e.g. an article or just a link tipp). If you need some additional information about the project and the software, drop me an email. I try to respond very quick to help you. If you already have written something, please inform me so I can put this information (and the article) on the project web site.