Jump to content
Stealth

Heartbleed Honeypot Script

Recommended Posts

Posted

#!/usr/bin/perl

# hb_honeypot.pl -- a quick 'n dirty honeypot hack for Heartbleed

#

# This Perl script listens on TCP port 443 and responds with completely bogus

# SSL heartbeat responses, unless it detects the start of a byte pattern

# similar to that used in Jared Stafford's (jspenguin@jspenguin.org) demo for

# CVE-2014-0160 'Heartbleed'.

#

# Run as root for the privileged port. Outputs IPs of suspected heartbleed scan

# to the console. Rickrolls scanner in the hex dump.

#

# 8 April 2014

# http://www.glitchwrks.com/

# shouts to binrev

use strict;

use warnings;

use IO::Socket;

my $sock = new IO::Socket::INET (

LocalPort => '443',

Proto => 'tcp',

Listen => 1,

Reuse => 1,

);

die "Could not create socket!" unless $sock;

# The "done" bit of the handshake response

my $done = pack ("H*", '16030100010E');

# Your message here

my $taunt = "09809*)(*)(76&^%&(*&^7657332 Hi there! Your scan has been logged! Have no fear, this is for research only -- We're never gonna give you up, never gonna let you down!";

my $troll = pack ("H*", ('180301' . sprintf( "%04x", length($taunt))));

# main "barf responses into the socket" loop

while (my $client = $sock->accept()) {

$client->autoflush(1);

my $found = 0;

# read things that look like lines, puke nonsense heartbeat responses until

# a line that looks like it's from the PoC shows up

while (<$client>) {

my $line = unpack("H*", $_);

if ($line =~ /^0034.*/) {

print $client $done;

$found = 1;

} else {

print $client $troll;

print $client $taunt;

}

if ($found == 1) {

print $client $troll;

print $client $taunt;

print $client->peerhost . "n";

$found = 0;

}

}

}

close($sock);

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...