There are several blogs in the Internet which **highlight the dangers of leaving printers configured with LDAP with default/weak** logon credentials.
This is because an attacker could **trick the printer to authenticate against a rouge LDAP server** \(typically a `nc -vv -l -p 444` is enough\) and to capture the printer **credentials on clear-text**.
Also, several printers will contains **logs with usernames** or could even be able to **download all usernames** from the Domain Controller.
All this **sensitive information** and the common **lack of security** makes printers very interesting for attackers.
**The following information was copied from** [**https://grimhacker.com/2018/03/09/just-a-printer/**](https://grimhacker.com/2018/03/09/just-a-printer/)\*\*\*\*
## LDAP settings
On Konica Minolta printers it is possible to configure an LDAP server to connect to, along with credentials. In earlier versions of the firmware on these devices I have heard it is possible to recover the credentials simply by reading the html source of the page. Now, however the credentials are not returned in the interface so we have to work a little harder.
The list of LDAP Servers is under: Network > LDAP Setting > Setting Up LDAP
The interface allows the LDAP server to be modified without re-entering the credentials that will be used to connect. I presume this is for a simpler user experience, but it gives an opportunity for an attacker to escalate from master of a printer to a toe hold on the domain.
We can reconfigure the LDAP server address setting to a machine we control, and trigger a connection with the helpful “Test Connection” functionality.
## Listening for the goods
### netcat
If you have better luck than me, you may be able to get away with a simple netcat listener:
```text
sudo nc -k -v -l -p 386
```
I am assured by [@\_castleinthesky](https://twitter.com/_castleinthesky) that this works most of the time, however I have yet to be let off that easy.
### Slapd
I have found that a full LDAP server is required as the printer first attempts a null bind and then queries the available information, only if these operations are successful does it proceed to bind with the credentials.
I searched for a simple ldap server that met the requirements, however there seemed to be limited options. In the end I opted to setup an open ldap server and use the slapd debug server service to accept connections and print out the messages from the printer. \(If you know of an easier alternative, I would be happy to hear about it\)
#### Installation
\(Note this section is a lightly adapted version of the guide here [https://www.server-world.info/en/note?os=Fedora\_26&p=openldap](https://www.server-world.info/en/note?os=Fedora_26&p=openldap) \)
Once you have installed and configured your LDAP service you can run it with the following command :
> ```text
> slapd -d 2
> ```
The screen shot below shows an example of the output when we run the connection test on the printer. As you can see the username and password are passed from the LDAP client to server.
![slapd terminal output containing the username "MyUser" and password "MyPassword"](https://i1.wp.com/grimhacker.com/wp-content/uploads/2018/03/slapd_output.png?resize=474%2C163&ssl=1)
This very much depends on the credentials that have been configured.
If the principle of least privilege is being followed, then you may only get read access to certain elements of active directory. This is often still valuable as you can use that information to formulate further more accurate attacks.
Typically you are likely to get an account in the Domain Users group which may give access to sensitive information or form the prerequisite authentication for other attacks.
Or, like me, you may be rewarded for setting up an LDAP server and be handed a Domain Admin account on a silver platter.