ISPY: Exploiting EternalBlue And BlueKeep Vulnerabilities With Metasploit Easier


About ISPY:
   ISPY is a Eternalblue (MS17-010) and BlueKeep (CVE-2019-0708) scanner and exploiter with Metasploit Framework.

   ISPY was tested on: Kali Linux and Parrot Security OS 4.7.

ISPY's Installation:
   For Arch Linux users, you must install Metasploit Framework and curl first:
pacman -S metasploit curl


   For other Linux distros not Kali Linux or Parrot Security OS. Open your Terminal and enter these commands to install Metasploit Framework:
 

   Then, enter these commands to install ISPY:

How to use ISPY?
 
ISPY's screenshots:

About the author:

Disclaimer: Usage of ispy for attacking targets without prior mutual consent is illegal.
ispy is for security testing purposes only


Related links


  1. Pentest Tools Find Subdomains
  2. Hacker Tools Windows
  3. Hacking Tools For Games
  4. Growth Hacker Tools
  5. Pentest Tools Tcp Port Scanner
  6. Hackrf Tools
  7. Physical Pentest Tools
  8. What Is Hacking Tools
  9. Hacking Tools For Windows 7
  10. Hacker Tools Linux
  11. Hacking Tools Free Download
  12. Hacks And Tools
  13. Pentest Tools List
  14. Pentest Tools Port Scanner
  15. Hacking Tools Kit
  16. Pentest Tools Port Scanner
  17. Hacking Tools For Mac
  18. Hak5 Tools
  19. Pentest Tools Windows
  20. Best Hacking Tools 2019
  21. Hacking Tools Name
  22. Hacking Tools And Software
  23. Hack And Tools
  24. Hacker Tools Free
  25. Hack Tools For Games
  26. Hacking Tools Mac
  27. Install Pentest Tools Ubuntu
  28. Hacking Tools Name
  29. Hack Tools Online
  30. Github Hacking Tools
  31. Hacking Tools Windows
  32. Pentest Tools Framework
  33. Hack Website Online Tool
  34. Pentest Tools Download
  35. Wifi Hacker Tools For Windows
  36. Hacker Tools
  37. Hacker Tools Mac
  38. Hacker Tools Linux
  39. Physical Pentest Tools
  40. Pentest Tools For Ubuntu
  41. Hack Tools For Games
  42. Free Pentest Tools For Windows
  43. What Is Hacking Tools
  44. Best Hacking Tools 2020
  45. Hack And Tools
  46. Hack And Tools
  47. Nsa Hacker Tools
  48. Pentest Tools Windows
  49. Pentest Tools Tcp Port Scanner
  50. Pentest Tools Kali Linux
  51. Hacking Tools 2019

Change Passwords Regularly - A Myth And A Lie, Don'T Be Fooled, Part 1


TL;DR: different passwords have different protection requirements, and different attackers using various attacks can only be prevented through different prevention methods. Password security is not simple. For real advise, checking the second post (in progress).

Are you sick of password advices like "change your password regularly" or "if your password is password change it to pa$$w0rd"? This post is for you!

The news sites are full of password advises nowadays due to recent breaches. When I read/watch these advise (especially on CNN), I am usually pissed off for a lot of reasons. Some advises are terrible (a good collection is here), some are good but without solutions, and others are better, but they don't explain the reasons. Following is my analysis of the problem. It works for me. It might not work for you. Comments are welcome!

Password history

Passwords have been used since ancient times.


Because it is simple. When I started using the Internet, I believe I had three passwords. Windows login, webmail, and IRC. Now I have ~250 accounts/passwords to different things, like to my smartphone, to my cable company (this password can be used to change the channels on the TV), to my online secure cloud storage, to full disk encryption to start my computer, to my nude pictures, to my WiFi router, to my cloud server hosting provider, etc etc etc. My money is protected with passwords, my communication is protected with passwords/encryption, my work is protected with passwords. It is pretty damn important. But yet people tend to choose lame passwords. Pretty lame ones. Because they don't think it can be significant. But what is not essential today will be relevant tomorrow. The service you used to download music (iTunes) with the lame password will one day protect all your Apple devices, where attackers can download your backup files, erase all your devices, etc. The seven-character and one capital rule is not enough anymore. This advice is like PDF is safe to open, Java is secure. Old, outdated, untrue.

Now, after this lengthy prologue, we will deep dive into the analysis of the problem, by checking what we want to protect, against whom (who is the attacker), and only after that, we can analyze the solutions. Travel with me, I promise it will be fun! ;)

What to protect?

There are different services online, and various services need different ways to protect. You don't use the same lock on your Trabant as you do on your BMW.

Internet banking, online money

For me, this is the most vital service to protect. Luckily, most of the internet banking services use two-factor authentication (2FA), but unfortunately, not all of them offer transaction authorization/verification with complete transactions. 2FA is not effective against malware, it just complicates the attack. Transaction authorization/verification is better, but not perfect (see Zitmo). If the access is not protected with 2FA, better choose the best password you have (long, real random, sophisticated, but we will get to this later). If it is protected with 2FA, it is still no reason not to use the best password ;) This is what I call the "very high-level password" class.


Credit card data

This system is pretty fucked up bad. Something has to be secret (your credit card number), but in the meantime that is the only thing to identify your credit card. It is like your username is your password. Pretty bad idea, huh? The problem is even worse with a lot of different transaction types, especially when the hotel asks you to fax both sides of your CC to them. Unfortunately, you can't change the password on your credit card, as there is no such thing, but Verified by VISA or 3-D Secure with 2FA might increase the chances your credit card won't get hacked. And on a side note, I have removed the CVV numbers from my credit/debit cards. I only read it once from the card when I received it, I don't need it anymore to be printed there.
And sometimes, you are your own worst enemy. Don't do stupid things like this:


Work related passwords (e.g. Windows domain)

This is very important, but because the attack methods are a bit different, I created this as a different category. Details later.

Email, social sites (Gmail/Facebook/Twitter), cloud storage, online shopping

This is what I call the "high level password" class.
Still, pretty important passwords. Some people don't understand "why would attackers put any energy to get his Facebook account?" It is simple. For money. They can use your account to spread spam all over your Facebook wall. They can write messages to all of your connections and tell them you are in trouble and send money via Western Union or Bitcoin.


They can use your account in Facebook votes. Your e-mail, cloud storage is again very important. 20 years ago you also had letters you didn't want to print and put in front of the nearest store, neither want you to do that with your private photo album. On a side note, it is best to use a cloud storage where even the cloud provider admin can't access your data. But in this case, with no password recovery option, better think about "alternative" password recovery mechanisms.

Other important stuff with personal data (e.g. your name, home address)

The "medium level password" class. This is a personal preference to have this class or not, but in the long run, I believe it is not a waste of energy to protect these accounts. These sites include your favorite pizza delivery service, your local PC store, etc.

Not important stuff

This is the category other. I usually use one-time disposable e-mail to these services. Used for the registration, get what I want, drop the email account. Because I don't want to spread my e-mail address all over the internet, whenever one of these sites get hacked. But still, I prefer to use different, random passwords on these sites, although this is the "low level password" class.

Attackers and attack methods

After categorizing the different passwords to be protected, let's look at the different attackers and attack methods. They can/will/or actively doing it now:

Attacking the clear text password 

This is the most effective way of getting the password. Bad news is that if there is no other factor of protection, the victim is definitely not on the winning side. The different attack methods are:

  • phishing sites/applications,


  • social engineering,
  • malware running on the computer (or in the browser), 
  • shoulder surfing (check out for smartphones, hidden cameras), 
  • sniffing clear-text passwords when the website is not protected with SSL,
  • SSL MiTM,
  • rogue website administrator/hacker logging clear text passwords,
  • password reuse - if the attacker can get your password in any way, and you reuse it somewhere else, that is a problem,
  • you told your password to someone and he/she will misuse it later,
  • hardware keyloggers,
  • etc.

The key thing here is that no matter how long your passwords are, no matter how complex it is, no matter how often do you change it (except when you do this every minute ... ), if it is stolen, you are screwed. 2FA might save you, or might not.

Attacking the encrypted password 

This is the usual "hack the webserver (via SQL injection), dump the passwords (with SQLMap), post hashes on pastebin, everybody starts the GPU farm to crack the hashes" scenario. This is basically the only scenario where the password policies makes sense. In this case the different level of passwords need different protection levels. In some cases, this attack turns out to be the same as the previous attack, when the passwords are not hashed, or are just encoded.

The current hash cracking speeds for hashes without any iterations (this is unfortunately very common) renders passwords like Q@tCB3nx (8 character, upper-lowercase, digit, special characters) useless, as those can be cracked in hours. Don't believe me? Let's do the math.

Let's say your password is truly random, and randomly choosen from the 26 upper, 26 lower, 10 digit, 33 special characters. (Once I tried special passwords with high ANSI characters inside. It is a terrible idea. Believe me.). There are 6 634 204 312 890 620 different, 8 character passwords from these characters. Assuming a 2 years-old password cracking rig, and MD5 hash cracking with 180 G/s speed, it takes a worst case 10 hours (average 5) to crack the password, including upgrading your bash to the latest, but still vulnerable bash version. Had the password been 10 characters long, it would take 10 years to crack with today hardware. But if the password is not truly random, it can be cracked a lot sooner.

A lot of common hashing algorithms don't use protections against offline brute-force attacks. This includes LM (old Windows hashes), NTLM (modern Windows hashes), MD-5, SHA1-2-512. These hashing algorithms were not developed for password hashing. They don't have salting, iterations, etc. out of the box. In the case of LM, the problem is even worse, as it converts the lowercase characters to uppercase ones, thus radically decreasing the key space. Out of the box, these hashes are made for fast calculation, thus support fast brute-force.


Another attack is when the protected thing is not an online service, but rather an encrypted file or crypto-currency wallet.

Attacking the authentication system online

This is what happened in the recent iCloud hack (besides phishing). Attackers were attacking the authentication system, by either brute-forcing the password, or bypassing the password security by answering the security question. Good passwords can not be brute-forced, as it takes ages. Good security answers have nothing to do with the question in first place. A good security answer is as hard to guess as the password itself. If password recovery requires manual phone calls, I know, it is a bit awkward to say that your first dog name was Xjg.2m`4cJw:V2= , but on the other hand, no one will guess that!


Attacking single sign on

This type of attack is a bit different, as I was not able to put the "pass the hash" attacks anywhere. Pass the hash attack is usually found in Windows domain environments, but others might be affected as well. The key thing is single sign on. If you can login to one system (e.g. your workstation), and access many different network resources (file share, printer, web proxy, e-mail, etc.) without providing any password, then something (a secret) has to be in the memory which can be used to to authenticate to the services. If an attacker can access this secret, he will be able to access all these services. The key thing is (again) it does not matter, how complex your passwords are, how long it is, how often do you change, as someone can easily misuse that secret.

 

Attacking 2FA

As already stated, 2 factor authentication raises the efforts from an attacker point of view, but does not provide 100% protection. 
  • one time tokens (SecurID, Yubikey) can be relayed in a man-in-the-middle attack, 
  • smartcard authentication can be relayed with the help of a malware to the attacker machine - or simply circumvented in the browser malware, 
  • text based (SMS) messages can be stolen by malware on the smartphone or rerouted via SS7, 
  • bio-metric protection is constantly bypassed,
  • SSH keys are constantly stolen,
  • but U2F keys are pretty good actually, even though BGP/DNS hijack or similar MiTM can still circumvent that protection,
  • etc. 


Others

Beware that there are tons of other attack methods to access your online account (like XSS/CSRF), but all of these have to be handled on the webserver side. The best you can do is to choose a website where the Bug Bounty program is running 24/7. Otherwise, the website may be full of low hanging, easy-to-hack bugs.

Now that we have covered what we want to protect against what, in the next blog post, you will see how to do that. Stay tuned. I will also explain the title of this blog post.Related news

Arris Cable Modem Backdoor - I'm A Technician, Trust Me.

Vendor backdoors are the worst. Sloppy coding leading to unintentional "bugdoors" is somewhat defendable, but flat out backdoors are always unacceptable. Todays example is brought to you by Arris. A great quote from their site -
Subscribers want their internet to be two things, fast and worry free. Cable operators deploy services to meet the speed expectations, and trust ARRIS to provide the cable modems that deliver the reliability.
Nothing spells "trust" and "worry free" like a backdoor account, right?! Anyways, the following was observed on an Arris TG862G cable modem running the following firmware version -TS070563_092012_MODEL_862_GW

After successfully providing the correct login and password to the modems administration page, the following cookie is set (client side):
Cookie: credential=eyJ2YWxpZCI6dHJ1ZSwidGVjaG5pY2lhbiI6ZmFsc2UsImNyZWRlbnRpYWwiOiJZV1J0YVc0NmNHRnpjM2R2Y21RPSIsInByaW1hcnlPbmx5IjpmYWxzZSwiYWNjZXNzIjp7IkFMTCI6dHJ1ZX0sIm5hbWUiOiJhZG1pbiJ9
 All requests must have a valid "credential" cookie set (this was not the case in a previous FW release - whoops) if the cookie is not present the modem will reply with "PLEASE LOGIN". The cookie value is just a base64 encoded json object:
{"valid":true,"technician":false,"credential":"YWRtaW46cGFzc3dvcmQ=","primaryOnly":false,"access":{"ALL":true},"name":"admin"}
And after base64 decoding the "credential" value we get:
{"valid":true,"technician":false,"credential":"admin:password","primaryOnly":false,"access":{"ALL":true},"name":"admin"}
Sweet, the device is sending your credentials on every authenticated request (without HTTPS), essentially they have created basic-auth 2.0 - As the kids say "YOLO". The part that stuck out to me is the "technician" value that is set to "false" - swapping it to "true" didn't do anything exciting, but after messing around a bit I found that the following worked wonderfully:
Cookie: credential=eyJjcmVkZW50aWFsIjoiZEdWamFHNXBZMmxoYmpvPSJ9
Which decodes to the following:
{"credential":"dGVjaG5pY2lhbjo="}
And finally:
{"credential":"technician:"} 
Awesome, the username is "technician" and the password is empty. Trying to log into the interface using these credentials does not work :(




That is fairly odd. I can't think of a reasonable reason for a hidden account that is unable to log into the UI. So what exactly can you do with this account? Well, the web application is basically a html/js wrapper to some CGI that gets/sets SNMP values on the modem. It is worth noting that on previous FW revisions the CGI calls did NOT require any authentication and could be called without providing a valid "credential" cookie. That bug was killed a few years ago at HOPE 9.

Now we can resurrect the ability to set/get SNMP values by setting our "technician" account:


That's neat, but we would much rather be using the a fancy "web 2.0" UI that a normal user is accustomed to, instead of manually setting SNMP values like some sort of neckbearded unix admin. Taking a look at the password change functionality appeared to be a dead end as it requires the previous password to set a new one:


Surprisingly the application does check the value of the old password too! Back to digging around the following was observed in the "mib.js" file:
SysCfg.AdminPassword= new Scalar("AdminPassword","1.3.6.1.4.1.4115.1.20.1.1.5.1",4);
Appears that the OID "1.3.6.1.4.1.4115.1.20.1.1.5.1" holds the value of the "Admin" password! Using the "technician" account to get/walk this OID comes up with nothing:
HTTP/1.1 200 OK
Date: Tue, 23 Sep 2014 19:58:40 GMT
Server: lighttpd/1.4.26-devel-5842M
Content-Length: 55
{
"1.3.6.1.4.1.4115.1.20.1.1.5.1.0":"",
"1":"Finish"
}
What about setting a new value? Surely that will not work....



That response looks hopeful. We can now log in with the password "krad_password" for the "admin" user:


This functionality can be wrapped up in the following curl command:
curl -isk -X 'GET' -b 'credential=eyJjcmVkZW50aWFsIjoiZEdWamFHNXBZMmxoYmpvPSJ9' 'http://192.168.100.1:8080/snmpSet?oid=1.3.6.1.4.1.4115.1.20.1.1.5.1.0=krad_password;4;'
Of course if you change the password you wouldn't be very sneaky, a better approach would be re-configuring the modems DNS settings perhaps? It's also worth noting that the SNMP set/get is CSRF'able if you were to catch a user who had recently logged into their modem.

The real pain here is that Arris keeps their FW locked up tightly and only allows Cable operators to download revisions/fixes/updates, so you are at the mercy of your Cable operator, even if Arris decides that its worth the time and effort to patch this bug backdoor - you as the end user CANNOT update your device because the interface doesn't provide that functionality to you! Next level engineering.


More information


  1. Hack Tool Apk
  2. Pentest Tools Alternative
  3. Black Hat Hacker Tools
  4. Pentest Tools Tcp Port Scanner
  5. Pentest Tools For Android
  6. Hacker Tools Hardware
  7. Ethical Hacker Tools
  8. Wifi Hacker Tools For Windows
  9. Tools For Hacker
  10. Hack Tools Pc
  11. Hacking Tools Mac
  12. Pentest Tools Windows
  13. Hack Apps
  14. Hack Tools For Windows
  15. Pentest Tools
  16. Hacking App
  17. Hacker Tools Apk Download
  18. How To Make Hacking Tools
  19. Hacking Tools Usb
  20. Pentest Tools Nmap
  21. Hacking Tools Github
  22. World No 1 Hacker Software
  23. Install Pentest Tools Ubuntu
  24. How To Make Hacking Tools
  25. Hacking Tools For Windows
  26. Pentest Tools Website Vulnerability
  27. Pentest Tools Bluekeep
  28. Ethical Hacker Tools
  29. Hacker Tools Mac
  30. Hacker Tools Github
  31. Pentest Tools Find Subdomains
  32. Hacker Tools Mac
  33. Hacker Security Tools
  34. New Hacker Tools
  35. Hacker Tools Linux
  36. Hack Tool Apk
  37. Hack Tools Mac
  38. Hacker Tools
  39. Physical Pentest Tools
  40. Hacker Search Tools
  41. Hack Tools 2019
  42. Hacking Tools Usb
  43. Pentest Tools Bluekeep
  44. Pentest Tools Bluekeep
  45. Hacker Tools Apk
  46. Best Hacking Tools 2019
  47. Pentest Tools Kali Linux
  48. Hacking App
  49. Pentest Tools Find Subdomains
  50. Pentest Tools Tcp Port Scanner
  51. Hacker Tools Mac
  52. Hacker Tools Windows
  53. New Hacker Tools
  54. Hacking Tools For Windows
  55. How To Make Hacking Tools
  56. Game Hacking
  57. Hacking Tools For Windows Free Download
  58. Hacker Tool Kit
  59. Pentest Box Tools Download
  60. What Are Hacking Tools
  61. Hacking Tools For Windows 7
  62. Easy Hack Tools
  63. Tools Used For Hacking
  64. Hack Website Online Tool
  65. Pentest Tools Github
  66. Free Pentest Tools For Windows
  67. Pentest Tools For Windows
  68. Hacking Tools Kit
  69. Hacker Tools Windows
  70. Tools For Hacker
  71. Hacking Tools Mac
  72. Pentest Tools Bluekeep
  73. Computer Hacker
  74. Hack Tools For Pc
  75. Underground Hacker Sites
  76. Pentest Tools Kali Linux
  77. Hack Website Online Tool
  78. Nsa Hack Tools Download
  79. Hacker Hardware Tools
  80. Kik Hack Tools
  81. Pentest Tools For Ubuntu
  82. Pentest Tools Linux
  83. Hack Tools For Windows
  84. Kik Hack Tools
  85. Hacker Tools Windows
  86. Growth Hacker Tools
  87. Hacking Tools And Software
  88. Usb Pentest Tools
  89. Hacking Tools
  90. Hacker Tools 2020
  91. Best Pentesting Tools 2018
  92. Best Hacking Tools 2020
  93. Game Hacking
  94. Hacker Tools Free Download
  95. Hack Tool Apk No Root
  96. Nsa Hack Tools
  97. Pentest Tools Website
  98. Hacking Tools For Windows Free Download
  99. Pentest Tools Framework
  100. Kik Hack Tools
  101. Hacking Tools For Windows Free Download
  102. Hacking Tools Windows
  103. Best Hacking Tools 2020
  104. Hacks And Tools
  105. Pentest Tools Kali Linux
  106. Hacker Hardware Tools
  107. Hacking Tools For Windows
  108. Hacking Tools 2019
  109. Hack Website Online Tool
  110. Pentest Tools Free
  111. Hacker Tools 2020
  112. World No 1 Hacker Software
  113. Growth Hacker Tools
  114. Hacking Tools For Kali Linux
  115. Kik Hack Tools
  116. Hacking App
  117. Pentest Tools Apk
  118. Best Pentesting Tools 2018
  119. Pentest Tools Open Source
  120. New Hack Tools
  121. Hacking Tools Online
  122. What Is Hacking Tools
  123. Hacker Tools List
  124. Best Hacking Tools 2019
  125. Hacking Tools
  126. Hacking Tools Github
  127. Hack Apps
  128. Hack Tools For Windows
  129. Hack Tools Online
  130. Bluetooth Hacking Tools Kali
  131. Tools 4 Hack
  132. Beginner Hacker Tools
  133. Github Hacking Tools
  134. Pentest Tools Url Fuzzer
  135. Hacker Tools Github
  136. Hacking Tools For Games
  137. Pentest Tools Port Scanner
  138. Hacker Tools

Printer Security


Printers belong arguably to the most common devices we use. They are available in every household, office, company, governmental, medical, or education institution.

From a security point of view, these machines are quite interesting since they are located in internal networks and have direct access to sensitive information like confidential reports, contracts or patient recipes.


TL;DR: In this blog post we give an overview of attack scenarios based on network printers, and show the possibilities of an attacker who has access to a vulnerable printer. We present our evaluation of 20 different printer models and show that each of these is vulnerable to multiple attacks. We release an open-source tool that supported our analysis: PRinter Exploitation Toolkit (PRET) https://github.com/RUB-NDS/PRET
Full results are available in the master thesis of Jens Müller and our paper.
Furthermore, we have set up a wiki (http://hacking-printers.net/) to share knowledge on printer (in)security.
The highlights of the entire survey will be presented by Jens Müller for the first time at RuhrSec in Bochum.

Background


There are many cool protocols and languages you can use to control your printer or your print jobs. We assume you have never heard of at least half of them. An overview is depicted in the following figure and described below.

 

Device control

This set of languages is used to control the printer device. With a device control language it is possible to retrieve the printer name or status. One of the most common languages is the Simple Network Management Protocol (SNMP). SNMP is a UDP based protocol designed to manage various network components beyond printers as well, e.g. routers and servers.

Printing channel

The most common network printing protocols supported by printer devices are the Internet Printing Protocol (IPP), Line Printer Daemon (LPD), Server Message Block (SMB), and raw port 9100 printing. Each protocol has specific features like print job queue management or accounting. In our work, we used these protocols to transport malicious documents to the printers.

 

Job control language

This is where it gets very interesting (for our attacks). A job control language manages printer settings like output trays or paper size. A de-facto standard for print job control is PJL. From a security perspective it is very useful that PJL is not limited to the current print job as some settings can be made permanent. It can further be used to change the printer's display or read/write files on the device.

 

Page description language

A page description language specifies the appearance of the actual document. One of the most common 'standard' page description languages is PostScript. While PostScript has lost popularity in desktop publishing and as a document exchange format (we use PDF now), it is still the preferred page description language for laser printers. PostScript is a stack-based, Turing-complete programming language consisting of about 400 instructions/operators. As a security aware researcher you probable know that some of them could be useful. Technically spoken, access to a PostScript interpreter can already be classified as code execution.

 

Attacks


Even though printers are an important attack target, security threats and scenarios for printers are discussed in very few research papers or technical reports. Our first step was therefore to perform a comprehensive analysis of all reported and published attacks in CVEs and security blogs. We then used this summary to systematize the known issues, to develop new attacks and to find a generic approach to apply them to different printers. We estimated that the best targets are the PostScript and PJL interpreters processing the actual print jobs since they can be exploited by a remote attacker with only the ability to 'print' documents, independent of the printing channel supported by the device.
We put the printer attacks into four categories.

 

Denial-of-service (DoS)

Executing a DoS attack is as simple as sending these two lines of PostScript code to the printer which lead to the execution of an infinite loop:

Denial-of-service%!
{} loop


Other attacks include:
  • Offline mode. The PJL standard defines the OPMSG command which 'prompts the printer to display a specified message and go offline'.
  • Physical damage. By continuously setting the long-term values for PJL variables, it is possible to physically destroy the printer's NVRAM which only survives a limited number of write cycles.
  • Showpage redefinition. The PostScript 'showpage' operator is used in every document to print the page. An attacker can simply redefine this operator to do nothing.

Protection Bypass

Resetting a printer device to factory defaults is the best method to bypass protection mechanisms. This task is trivial for an attacker with local access to the printer, since all tested devices have documented procedures to perform a cold reset by pressing certain key combinations.
However, a factory reset can be performed also by a remote attacker, for example using SNMP if the device complies with RFC1759 (Printer MIB):

Protection Bypass# snmpset -v1 -c public [printer] 1.3.6.1.2.1.43.5.1.1.3.1 i 6
Other languages like HP's PML, Kyocera's PRESCRIBE or even PostScript offer similar functionalities.

Furthermore, our work shows techniques to bypass print job accounting on popular print servers like CUPS or LPRng.

Print Job Manipulation

Some page description languages allow permanent modifications of themselves which leads to interesting attacks, like manipulating other users' print jobs. For example, it is possible to overlay arbitrary graphics on all further documents to be printed or even to replace text in them by redefining the 'showpage' and 'show' PostScript operators.

Information Disclosure

Printing over port 9100 provides a bidirectional channel, which can be used to leak sensitive information. For example, Brother based printers have a documented feature to read from or write to a certain NVRAM address using PJL:

Information Disclosure@PJL RNVRAM ADDRESS = X
Our prototype implementation simply increments this value to dump the whole NVRAM, which contains passwords for the printer itself but also for user-defined POP3/SMTP as well as for FTP and Active Directory profiles. This way an attacker can escalate her way into a network, using the printer device as a starting point.
Other attacks include:
  • File system access. Both, the standards for PostScript and PJL specify functionality to access the printers file system. As it seems, some manufacturers have not limited this feature to a certain directory, which leads to the disclosure of sensitive information like passwords.
  • Print job capture. If PostScript is used as a printer driver, printed documents can be captured. This is made possible by two interesting features of the PostScript language: First, permanently redefining operators allows an attacker to 'hook' into other users' print jobs and secondly, PostScript's capability to read its own code as data allows to easily store documents instead of executing them.

  • Credential disclosure. PJL passwords, if set, can easily retrieved through brute-force attacks due to their limited key space (1..65535). PostScript passwords, on the other hand, can be cracked extremely fast (up to 100,000 password verifications per second) thanks to the performant PostScript interpreters.

PRET

To automate the introduced attacks, we wrote a prototype software entitled PRET. The main idea of PRET is to facilitate the communication between the end-user and the printer. Thus, by entering a UNIX-like command PRET translates it to PostScript or PJL, sends it to the printer, and evaluates the result. For example, PRET converts a UNIX command ls to the following PJL request:


Information Disclosure@PJL FSDIRLIST NAME="0:\" ENTRY=1 COUNT=65535
It then collects the printer output and translates it to a user friendly output.

PRET implements the following list of commands for file system access on a printer device:

Evaluation

As a highly motivated security researcher with a deep understanding of systematic analysis, you would probably obtain a list of about 20 - 30 well-used printers from the most important manufacturers, and perform an extensive security analysis using these printers.
However, this was not our case. To overcome the financial obstacles, we collected printers from various university chairs and facilities. While our actual goal was to assemble a pool of printers containing at least one model for each of the top ten manufacturers, we practically took what we could get. The result is depicted in the following figure:
The assembled devices were not brand-new anymore and some of them were not even completely functional. Three printers had physically broken printing functionality so it was not possible to evaluate all the presented attacks. Nevertheless, these devices represent a good mix of printers used in a typical university or office environment.
Before performing the attacks, we of course installed the newest firmware on each of the devices. The results of our evaluation show that we could find multiple attacks against each printer. For example, simple DoS attacks with malicious PostScript files containing infinite loops are applicable to each printer. Only the HP LaserJet M2727nf had a watchdog mechanism and restarted itself after about ten minutes. Physical damage could be caused to about half of the tested device within 24 hours of NVRAM stressing. For a majority of devices, print jobs could be manipulated or captured.
PostScript, PJL and PML based attacks can even be exploited by a web attacker using advanced cross-site printing techniques. In the scope of our research, we discovered a novel approach – 'CORS spoofing' – to leak information like captured print jobs from a printer device given only a victim's browser as carrier.
A proof-of-concept implementation demonstrating that advanced cross-site printing attacks are practical and a real-world threat to companies and institutions is available at http://hacking-printers.net/xsp/.

Our next post will be on adapting PostScript based attacks to websites.

Authors of this Post

Jens Müller
Juraj Somorovsky
Vladislav Mladenov

Related articles
  1. Underground Hacker Sites
  2. Pentest Tools Website Vulnerability
  3. Hacker Tools Mac
  4. Pentest Tools Framework
  5. Growth Hacker Tools
  6. Wifi Hacker Tools For Windows
  7. Hacking Tools Free Download
  8. Pentest Tools For Ubuntu
  9. Pentest Tools Download
  10. Hack Tools Online
  11. Hack Tool Apk
  12. Hack Tool Apk
  13. Best Hacking Tools 2019
  14. Hack Tool Apk No Root
  15. Pentest Tools
  16. How To Hack
  17. Pentest Box Tools Download
  18. Beginner Hacker Tools
  19. Hacker Tools For Ios
  20. Hack Tools For Windows
  21. Hack Tools Download
  22. Hacking Tools For Windows Free Download
  23. Hack Tools Mac
  24. Best Hacking Tools 2019
  25. What Is Hacking Tools
  26. Underground Hacker Sites
  27. Hacker Tools Free
  28. Free Pentest Tools For Windows
  29. Hacking Tools Mac
  30. Hacker Tools List
  31. Top Pentest Tools
  32. Hackrf Tools
  33. Pentest Tools Port Scanner
  34. Github Hacking Tools
  35. Hacker Tools List
  36. Hacking Tools 2020
  37. Wifi Hacker Tools For Windows
  38. Hacking Tools Software
  39. Growth Hacker Tools
  40. New Hacker Tools
  41. Blackhat Hacker Tools
  42. Hacker Tools Apk
  43. Hacking Tools
  44. Hacker Techniques Tools And Incident Handling
  45. Hack Rom Tools
  46. Pentest Tools For Windows
  47. Hacking Tools For Beginners
  48. Hacker Techniques Tools And Incident Handling
  49. Hacking Apps
  50. Hacking Tools Kit
  51. Hacking Tools Windows
  52. Hacker Tools Hardware
  53. Physical Pentest Tools
  54. Pentest Tools Download
  55. Pentest Automation Tools
  56. Hacking Tools Pc
  57. Pentest Tools Windows
  58. Hackrf Tools
  59. Hacking Apps
  60. Pentest Tools Tcp Port Scanner
  61. Hacks And Tools
  62. Top Pentest Tools
  63. Tools 4 Hack
  64. Hacking Tools Free Download
  65. Hacking Tools Pc
  66. Github Hacking Tools
  67. Hacker Tools Linux
  68. Hacking Tools Usb
  69. Hack Tools Download
  70. Hacking Tools Windows 10
  71. Pentest Reporting Tools
  72. Hacking Tools And Software
  73. Hacking Tools Windows
  74. Pentest Tools For Ubuntu
  75. Hacker Tools Apk Download
  76. Hacking Tools For Mac
  77. Hack Tools Online
  78. Pentest Tools Nmap
  79. Hacker Tools For Pc
  80. Hacking Tools For Windows 7
  81. Hacker Techniques Tools And Incident Handling
  82. Tools 4 Hack
  83. Pentest Tools Tcp Port Scanner
  84. Hacker Tools List
  85. Hack Tools Pc
  86. Black Hat Hacker Tools
  87. Pentest Tools Review
  88. Pentest Tools Windows
  89. Hacker Tools Mac
  90. Hacker Tools Apk
  91. Hack Tools For Pc
  92. Pentest Tools Port Scanner
  93. Hacking Tools For Windows
  94. Hacker Tool Kit
  95. Install Pentest Tools Ubuntu