Jump to content
Stealth

Heartbleed Honeypot Script

Recommended Posts

#!/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);

Link to comment
Share on other sites

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...