rwet

It's morning again and I am still waiting by Sebastian Morales

This project derived from another, as they often do. In this case I was studying internet bots and botnets, their patterns and flows. Soon after, I started creating honeypots designed to attract more bots, keeping them in the server as long as possible, setting baits to lure them back when they left.

After a couple days, bots where coming form everywhere, many different types. After a week, I had bots from a particularly bot net visiting the server every couple of hours. Each time what seem to be a different IP address would appear, try a combination of username and password, then disappear forever. Somewhere around the world, perhaps everywhere around it, these were loyal, punctual, and always present predators. Keep in mind that these bots were trying to hack my server, not very successfully, but their only purpose was harm. They continued visiting for months, then, inexplicably, stop to never come back again.

The week after they stop was strange. I found myself checking the server logs multiple times a day, always feeling somewhat abandoned. I am not sure where or how this relates to the Stockholm syndrome or if I should try to coin a new term. But there was something about this creatures, meaning harm but now absent, that made my yearning strong.

I couldn’t resist the curiosity, the urge to find out more. I started meticulously looking for clues though months of server logs, and there were patterns. In fact, not all the IP address where unique, they often came back again, and again, and again. Traveling oceans at the speed of light, no frontiers, the only boarder a Wordpress login page.

This sparked the idea in my head of writing/coding a poem for a particular(random) bot that came frequently. It is read/written as a system administrator, who knows the bot is trying to hack its system but cannot help to develop an unhealthy attraction and lust for it. Asking the system to help him track the bot back to its origin.

 

Original post:

This project was part of the final for Reading and Writing Electronic Text class. It was inspired by the bots that have been visiting my honey pot server the last couple of months. 

In particular it was inspired by a period of time about 1 week long that they stopped coming. I felt curiosity, and sadness for the sudden unexplained abandonment of these bots. 

I first started on Jupyter Notebook. For a period of 1.5 months I had been recording all bots that visited the server. It was a simple txt file logging every visit, in the order as they came.

I made the mistake to not save the log in a structured way as a dictionary or a Json, which meant that the first step was to convert the data into a structured values. 

I became particularly interested in bots seeking to hack a wordpress site. The honey pot server would always return an error message and the same page, it looks something like this: 

WP honey pot

I became fascinated by these bots, they all behave exactly the same way and acted in an orderly fashion. It would be safe to assume that they are all connected and orchestrated by the same master. Yet they seem to always come from different IP address. Looking at all the IPs plotted around the world we can see they are quite distributed...

world.jpg

Anyways, turning into poetry

As these type of bot arrive they leave behind a post request of the following structure.

Wed Apr 18 2018 08:22:14 GMT+0000 (UTC) ip 94.25.169.198 Mozilla/5.0 (Windows NT 6.0; rv:34.0) Gecko/20100101 Firefox/34.0 POST {"log":"admin","pwd":"viking","rememberme":"forever","submit":"Login","redirect_to":"wp-login-error.html"} Path: /wp-login.php

With this in mind I started parsing though the data, looking at common passwords and common User names. Also looking at the most repeated IP address.

I found that out of the 5010 WP logging attempts 2110 were from the same IPs.

Top 20:

[('95.79.33.65', 23),
 ('176.197.78.250', 22),
 ('93.157.168.25', 21),
 ('37.143.19.62', 20),
 ('46.61.152.185', 19),
 ('5.104.206.2', 19),
 ('185.59.58.52', 18),
 ('91.192.173.25', 18),
 ('185.13.112.104', 18),
 ('62.140.230.163', 17),
 ('109.172.30.247', 17),
 ('192.95.168.172', 16),
 ('93.170.177.233', 16),
 ('80.64.18.225', 16),
 ('185.81.248.18', 16),
 ('188.0.135.155', 16),
 ('176.120.211.202', 16),
 ('212.118.40.117', 16),
 ('46.35.243.27', 15),
 ('195.9.51.62', 15)]

This sparked in my head the idea of having a poem for a particular bot that has come frequently. It is read/written by the system administrator, who knows the bot is trying to hack the system but cant help to develop an unhealthy attraction and lust for it. Asking the system to help him track the bot to its origin.

Some of the text in the poem comes from the bot passwords and usernames, also the dates and times registered would help build some tension thought repetition.

The embedded jupyter notebook shows most of the process of developing the poem.

For the actual performance I didn't want to read streight form a jupyter notebook but rather from a terminal window. As the system administrator looks at the logs and talks to the terminal. 

 

The actual python script for the terminal version can be found [here].

Tracery, self generating HTML sites by Sebastian Morales

HW 4 is all about Tracery a tool that allows you to generate text using substitution rules. Depending on your patience and creativity, you can accomplish some pretty crazy stuff. 

This time we were challenged to create our own poetic form and rules. I decided to steer a little from the main assignment and explore the tool under another context.

I have notice that I am not a very good poet, and that my (computer generated poems) will get just a couple of views before disappearing to be never found again under other posts. To my surprise, there has been some very loyal readers, and no matter what I publish, they keep coming back. 

The following poems are dedicated to my loyal readership, bots:

The python script uses tracery to generate a different HTML page every time it is run. It will generate a top navigation menu, links, embed images, contact info as well as headers and text... the whole thing. 

On my server, using the npm package isBot I filter the requests by user agent, if it is a bot, I generate a new page and server it back, if it is human, I return what was asked for.

I have only tested my poem for 24 hours so far and I am amazed by the response. I feel so talented, I think I have finally found my audience. Some bots from Google are OBSESSED! They keep coming back and back and back! My server bill might be high this month bot I have to stay true to my fans! 

Over 4000 Google bot asking for poems

Over 4000 Google bot asking for poems

HW3-Digital_cut_up- Thesis Review by Sebastian Morales

For this assignment we take two or more texts and combining together using random, lists and list expressions. In this case the takes my thesis proposal and mixes it with my thesis feedback review:

Here a couple of samples:

which brings together art, seems human input is
The University of Surrey, wonderful cell biologist at
the form of bursts could include more of
regulate gene expression and, is a book about
to pass signals between or is sebastian ultimately
the Internet by being execute this on a
and Alfred Renyi, who protozoa. Are we talking
communication was detected using genetics named Timothee Lionnet
engage the audience with how will they alter

 

programmer specialising in artificial like the concept of
recently discovered by Bonnie description could include more
form of bursts of "post-human". Will bots have
potential of a powerful this will work technically
to map the world description could include more
it cannot produce the release different type of
white pixels become purple (for future reference :)
research takes a threefold description is good. I

Following is the actual jupyter code:

Generated Poetry + Embedding Jupyter into Squarespace by Sebastian Morales

Inspired by a trip to Trader Joes one rainy afternoon

Embedding Jupyter Notebook into Squarespace:

First upload it to Github, then create a iframeable url at http://nbviewer.jupyter.org/ 

Then simply embed as an iframe: 
<iframe src="https://nbviewer.jupyter.org/github/sebmorales/itp_RWET/blob/master/HW/some-poetry-generators.ipynb" width="100%" height="3600" scrolling="yes" frameborder="0"></iframe>
 

*Note: make sure the url is secure (https), if not it won't load for security reasons.

transcribing identity by Sebastian Morales

Start by going 16.6 units at a 133.6 degrees, once you reach there you are going to move in an arc motion. The arc should be tangent to the movement you just did. The arc has a radius of 6.1 units; continue walking that arc for 153.3 degrees in the anti-clockwise direction. At this exact position walk tangentially for 10.5 units. You have arrived to the first decision point; you have the option to go in one of three directions. Left, right, or center [decision 1]. Strangely in this map, the paths are parallel and may merge in the future so don't think it too much. You will go left and see what happens. Walk 14.2 units east and 15.9 units north. It is best if you do the previous two steps in a single hypotenuse motion. Walk a tangential arc of a radius of 9.36 units, this arc goes in the anti clockwise direction for 119.3 degrees. At the exit, keep straight with that inertial direction for 16.4 units, be prepared, a long complicated curve awaits.

The curve is a type of curve called a spline. In this case, this spline has a beginning, an end, and three intermediate points. Unlike a polyline, a spline is not the simple connection of lines with points. In a spline, each intermediate point has two control points. These control points have the unique characteristic that when connected, the center is the main point, and the line formed is tangential to the curve at that point. The distance between control points also influences the radius of the curve at that point, the longer the control line, the larger the radius of the curve at that point. With this knowledge, the first point is exactly where we are.

The control line is tangential to our direction and has a length of 16.4 units, from there, the following point is 29 unites west and 11.2 units south. The control line has a slope of 1 and a length of 12.3 units. The following point is 20 units south and 14 units west. This time the control line has a slope of 2.25 and a length of 21.7 units and a slope of -0.93.  The fifth and last point in the spline is 53.9 units east and 10.7 units south from here. It’s control line measures 23.12 units, and has a slope of  0.21. Here we will do a long arch, the arch continues tangentially for 63.5 degrees and has an arch of  78.8 units. From this point you will start another arch in the same general direction, also tangential to where we are. The arch has a radius of 43.7 and you will walk it for 39.1 degrees. 

Things take a slight change now, so far the path has have the regular shape of a spiral, but now the direction will change. Still tangentially, but now in a clockwise direction, you will walk a short angle, only 9.5 degrees but a radius of 442.0 units. 

You have reached one possible end of the image.