Registrar desde la terminal las conversaciones realizadas con Pidgin (strace)

Gracias a la herramienta de depuración de procesos “strace” se puede vigilar desde el usuario root cualquier cosa realizada en el sistema. Para el caso que nos ocupa, vamos a ver como visualizar las conversaciones que se tienen en el cliente de mensajería Pidgin.

NOTA: No influye si se usa o no cifrados y/o plugins OTR.

Se registra toda la actividad de Pidgin en el fichero /root/fichero. (Pidgin tiene el PID 14875)

strace -e trace=sendmsg -e  abbrev=all -s 512 -p 14875 -o /root/fichero

Sacar la lista de contactos / usuarios.

grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+\b" fichero | sed -e 's/^0//g' | awk ' !x[$0]++'

El filtro que se propone a continuación es muy básico, es un punto de partida, se puede ir ampliando según necesidad. El volcado de strace varía dependiendo de la red a la que se conecte la cuenta, la configuración / versión del cliente Pidgin y otra serie de factores.

Extraer conversaciones de Pidgin del volcado de “strace”.

grep -o -i 'to=.*@*</body>|[a-z 0-9]*@.*\0.*\"' fichero | sed -e 's/\\0//g' -e 's/249\\[0-9]//g' -e 's/<.*>//g' -e 's/\\t//g' -e 's/^0//g' -e 's/\\...\\[0-2].$//g' -e 's/\\....\\[0-2].$//g' -e 's/\"$//g' -e 's/\]$//g' | egrep -v -E '\!as|\\343o\\1|\_\"|\^\"|<body>|OTR|ConversationTimestamp|ReceivingI|Writing|DisplayingImMsg|DisplayedImMsg|\]\"$|`"$|\}\"$' | awk ' !x[$0]++'

Ejemplo de salida.

egrep -o -i 'to=.*@*</body>|[a-z 0-9]*@.*\0.*\"' fichero | sed -e 's/\\0//g' -e 's/249\\[0-9]//g' -e 's/<.*>//g' -e 's/\\t//g' -e 's/^0//g' -e 's/\\...\\[0-2].$//g' -e 's/\\....\\[0-2].$//g' -e 's/\"$//g' -e 's/\]$//g' | egrep -v -E '\!as|\\343o\\1|\_\"|\^\"|<body>|OTR|ConversationTimestamp|ReceivingI|Writing|DisplayingImMsg|DisplayedImMsg|\]\"$|`"$|\}\"$' | awk ' !x[$0]++' | grep -i michi
 
michi@dominio.com/jwchat\22busindre@dominio.com\272\300
michi@dominio.com/jwchat\24Hola Ana, como estas
michi@dominio.com/jwchat)Yo no soy Ana, creo que te has confundido
michi@dominio.com/jwchat\22busindre@dominio.com\310\300
michi@dominio.com/jwchat\24mmmmm no, no lo creo
michi@dominio.com/jwchatByo creo que si,.. pero como quieras, me hago pasar por Ana y punto
michi@dominio.com/jwchat\22busindre@dominio.com\336\300
michi@dominio.com/jwchat)me parece bien jajajaja, me pones la cam?
michi@dominio.com/jwchat\24si espera un momento

Las conversaciones que tienen encima la cadena “michi@chat.busindre.com/jwchat\22busi@198.98.51.198\336\300” corresponden al contacto remoto, no al local, de esta manera es fácil identificar quien es quien en la conversación.

Michi: Hola Ana, como estas
busindre:Yo no soy Ana, creo que te has confundido
Michi: mmmmm no, no lo creo
busindre: yo creo que si,.. pero como quieras, me hago pasar por Ana y punto
...