Tag Archives: ubuntu

Commands and Code Snippets I usually forget

Some commands and code snippets I use rarely during CTFs or my daily work, but still I need them from time to time and I’m very lazy to remember them. This note may grow over time.

Javascript

Playing with dec, hexa and bin (not really) in JS
String.fromCharCode(0x41) // 'A'

parseInt('0xf', 16) // 15

var n = 15

n.toString(16) // 'f'
n.toString(2) // '1111'
n.toString() // '15'

var n = 'A'
n.charCodeAt() // 65
// dec to hex
n.charCodeAt().toString(16) // '41'
// dec to bin
n.charCodeAt().toString(2) // '1000001'
// dec to hex
parseInt(255).toString(16) // 'ff'
// dec to bin
parseInt(5).toString(2) // '101'
Simple HTTP GET request using nodejs
const https = require('https');

https.get('https://www.alevsk.com', (resp) => {
  let data = '';
  resp.on('data', (chunk) => {
    data += chunk;
  });
  resp.on('end', () => {
    //DO something with data
  });
}).on("error", (err) => {
  console.log("Error: " + err.message);
});
Simple HTTP POST request using nodejs
const https = require('https')

const data = JSON.stringify({
  todo: 'Buy the milk'
})

const options = {
  hostname: 'whatever.com',
  port: 443,
  path: '/todos',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length
  }
}

const req = https.request(options, res => {
  res.on('data', d => {
    process.stdout.write(d)
  })
})

req.on('error', error => {
  console.error(error)
})

req.write(data)

req.end()
Extract content between regular expression patterns using JS
const message =  data.match(/<p>([^<]+)<\/p>/)[1];
const lat =  data.match(/name="lat" value="([^<]+)" min=/)[1];
const long =  data.match(/name="lon" value="([^<]+)" min=/)[1];
const token =  data.match(/name="token" value="([^<]+)"/)[1];

Linux

Mount NTFS on Linux
mount -t ntfs [FILE] [PATH]
mount -t type device directory
Extract extended attributes from NTFS disk
getfattr --only-values [FILE] -n [ATTR-NAME] > file
Parsing file with awk and run xargs
cat [FILE] | awk '{print $1 .. $n}' | xargs

Python

Start Simple HTTP server with Python
python -m SimpleHTTPServer
Inline Python commands
python -c 'print "\x41" * 20'

PHP

Run PHP interactive mode
php -a

OOM en MySQL (cuando las bases de datos mueren)

devotion_to_duty

Durante 2014 estuve trabajando bastante con servidores virtuales de la compañía digitalocean.com, esta compañía tiene planes bastante económicos y accesibles (desde 5 dólares por mes) si lo que queremos es montar micro sitios web, ideales para paginas web de pequeñas compañías que reciben algunas miles de visitas por mes.

Sin embargo esta es un arma de doble filo, ya que si lo que quieren las empresas es ahorrarse unos cuantos dólares al año tienen que invertirlos en un buen administrador de sistemas que optimice sus servidores para aprovechar al máximo los recursos tan limitados del servidor

  • 512 MB Memory
  • 1 CoreProcessor
  • 20 GB SSD Disk
  • 1 TB Transfer

Uno de los problemas mas comunes que he visto es el llamado OOM (Out Of Memory) de Mysql, lo que ocasiona que los sitios web queden fuera de servicio … incluso durante días hasta que alguien se da cuenta.

Por lo regular nos damos cuenta que es un problema de memoria cuando se cayo el servicio e intentamos restablecerlo, y en la consola nos es desplegado un mensaje como el siguiente:

[email protected]:/# service mysql start
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

Podemos revisar los logs del servicio en los siguientes archivos:

  • /var/log/mysql.err – MySQL Error log file
  • /var/log/mysql.log – MySQL log file

También podemos revisar el estado de la memoria con el comando free:

[email protected]:/# free -m
             total       used       free     shared    buffers     cached
Mem:           497        467         29          0          8        146
-/+ buffers/cache:        312        184
Swap:          999          3        996

En este punto obviamente el servidor se esta cayendo a pedazos así que lo que tenemos que hacer es primeramente detectar las malas configuraciones de Mysql (configuraciones por default) y optimizarlas :D.

Existe una utilidad que nos hace la vida mas sencilla, un pequeño software llamado mysqltuner, así que lo instalamos.

[email protected]:/# apt-get install mysqltuner

Y lo ejecutamos con el comando mysqltuner, al inicio nos pedirá las credenciales de un usuario con privilegios de root, para después comenzar a realizar un análisis y sugerirnos varias configuraciones de acuerdo a los resultados

[email protected]:/# mysqltuner
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = "en_US:en",
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

 >>  MySQLTuner 1.1.1 - Major Hayden
 >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 >>  Run with '--help' for additional options and output filtering
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password: 

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.40-0+wheezy1-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster 
[--] Data in MyISAM tables: 5M (Tables: 33)
[--] Data in InnoDB tables: 2M (Tables: 44)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 52

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 37m 4s (12K q [5.810 qps], 265 conn, TX: 24M, RX: 1M)
[--] Reads / Writes: 92% / 8%
[--] Total buffers: 192.0M global + 2.7M per thread (151 max threads)
[!!] Maximum possible memory usage: 597.8M (120% of installed RAM)
[OK] Slow queries: 0% (0/12K)
[OK] Highest usage of available connections: 1% (3/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/1.9M
[OK] Key buffer hit rate: 99.3% (148K cached / 998 reads)
[OK] Query cache efficiency: 63.4% (7K cached / 11K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 446 sorts)
[OK] Temporary tables created on disk: 19% (152 on disk / 792 total)
[OK] Thread cache hit rate: 98% (3 created / 265 connections)
[OK] Table cache hit rate: 24% (123 open / 495 opened)
[OK] Open file limit used: 11% (120/1K)
[OK] Table locks acquired immediately: 100% (4K immediate / 4K locks)
[OK] InnoDB data size / buffer pool: 3.0M/128.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    MySQL started within last 24 hours - recommendations may be inaccurate
    Reduce your overall MySQL memory footprint for system stability
    Enable the slow query log to troubleshoot bad queries

[email protected]:/# 

En este ejemplo mysqltuner nos arrojo problemas con algunas tablas fragmentadas y una configuración por default de memoria ram que permite que el gestor utilice el 120% de la memoria del sistema! (y así quieren que no se muera el servicio x.x), entonces, con esta información ya tenemos algunas pistas acerca de por donde comenzar a resolver y optimizar.

salu2

Ventajas y desventajas de rootear tu móvil Android


Rooteando tu teléfono móvil Android podrás acceder a los ficheros del sistema que hacen que funcione y personalizarlo instalando ROMs personalizadas que hayan creado desarrolladores android independientes.

Una vez rooteado, siempre puedes volver a un backup y restaurar tu dispositivo a su anterior estado, es decir, a su origen. Ahora bien, ¿qué ventajas y qué desventajas tiene realizar esta operación?

Ventajas de rootear

  • Podrás disfrutar de todas esas aplicaciones que requieren root.
  • Tendrás la última versión de Android siempre que quieras, sin depender del fabricante de tu dispositivo.
  • Garantiza la compatibilidad con las últimas aplicaciones que llegan al Android Market.

Desventajas del root

  • Haciendo root pierdes la garantía del dispositivo Android.
  • Las actualizaciones oficiales de Android no se te enviarán a tu dispositivo de forma automática.
  • No garantiza una estabilidad al 100%, has de estudiar primero la ROM que vas a instalar y ver las opiniones de personas que ya la están utilizando para comprobar que es segura y estable.

salu2

Impresionante animación hecha en flash

Sábado por la noche (3 am), programando, algo de insomnio y viendo la tv, encontre en el sitio de un amigo, una divertida animación flash (esta si me gusto), se trata de una matriz donde puedes ir marcando cuadrados y estos comenzaran entonces a formar un patron que generar musica :), uno se divierte un rato con esta cosa :p

[SWF]http://www.sembeo.com/media/Matrix.swf, 600, 600[/SWF]


THE WHOLE WORLD NEEDS TO KNOW ABOUT THIS.

salu2

Cliente de correo para Mac y Ubuntu

Como muchos de ustedes ya sabrán desde hace un par de meses utilizo el sistema operativo Mac, es sencillo, agil y muy facil de utilizar, sin embargo (y para mis lectores linuxeros mas fieles) no he dejado linux de lado jeje. Hace un par de semanas instale backtrack por que necesitaba hacer unas auditorias de seguridad, el trabajo fue bien y todo felices y ahora me dispongo a instalar ubuntu 11.04, así que me puse a investigar que novedades traia en esta version la distribución :), sobre todo la parte de software de productividad (si, ese que hace que hagas tu trabajo mas rapido y con mayor calidad).

Hablando de clientes de correo, yo en Mac utilizo el que trae por defecto, es muy bueno y me ofrece lo que la mayoría de los clientes de correo, administración de mails, guardar mis mails y leerlos mas tarde etc, una interfaz limpia y agil, incluso si no tienes un mail puedes crear correo directamente desde el cliente.

Ahora al instalar ubuntu me doy cuenta que viene con el escritorio Unity por defecto (nada bonito para mi gusto jeje), soy usuario de Gnome así que bye bye Unity.

Me agrado que ubuntu sigue conservando Evolution como cliente de correo principal, aunque algunos prefieren mas Thunderbird de mozilla que al igual que Mail de Mac te permite crear correo hotmail, yahoo, gmail, etc.

salu2