[HACK.LU 2013] CTF WriteUp

Bin on s’est fait tabasser, Bon… 64eme sur 341 équipes concurrentes et 748 au total si on comptabilise toutes celles qui n’ont pas ramassé un copec… ca me suffit ! Note aux organisateurs, c’était fun n’en doutons, mais hyper violent, ça démotive ceux qui n’y passent pas les 48h :)

Bref, comme d’hab un seul chall de flaggé (MODE à fond on). Un sympatique reverse nommé [FluxArchiv (Part 1) – 400], le write-up est dispo ici :

http://big-daddy.fr/blog/?p=254

Posted in Asm, Challenge, Reverse | Tagged , , , , | Leave a comment

CTF Hack.lu

CLICK ME – HARVEST ME – TRUST ME – FROM EVERYWHERE

https://ctf.fluxfingers.net/ref/xE05SNmOd26rDSS

Posted in Challenge | Leave a comment

Plein de lan virtuel dans Vmware Fusion 6

Quand on bidouille avec pleins de Vm dans un vmware fusion sous mac, on se rend compte rapidement que M. Vmware ne fournis qu’un seul switch “Host Only”. Et quand on bidouille des petits labs de tout poils, c’est un peu court.

M. Vmware ne fournis pas sur FUSION de vmnet-cfg comme sous windows.

vmware-net-cfg_2

Ayant du me débrouiller tout seul, n’ayant pas trouvé de procédure, je vous la livre ici:

Etape 1, ouvrir une console et passer Root

HacBook:/ thanat0s$ sudo su -
Password:
HackBook:~ root#

Etape 2, exporter la configuration réseau existante

HackBook:Library root# cd /Applications/VMware\ Fusion.app/Contents/Library/
HackBook:Library root# ./vmnet-cfgcli exportconfig /tmp/vmconf.txt
Library Loaded
vmnetcfg: vnlexportconfig - Export network config data to: /tmp/vmconf.txt

Etape 3, Bidouiller
Editez /tmp/vmconf.txt et ajoutez des “Host Only”, ici tout ce qui est VNET7 et 6

BACKUP_VERSION=1,0
answer VNET_1_DHCP yes
answer VNET_1_DHCP_CFG_HASH 848B688351DBC2482214B111F4FA0B4FAB1201CE
answer VNET_1_HOSTONLY_NETMASK 255.255.255.0
answer VNET_1_HOSTONLY_SUBNET 192.168.4.0
answer VNET_1_VIRTUAL_ADAPTER yes
answer VNET_6_DHCP no
answer VNET_6_VIRTUAL_ADAPTER yes
answer VNET_6_NAT no
answer VNET_6_HOSTONLY_NETMASK 255.255.255.0
answer VNET_6_HOSTONLY_SUBNET 172.16.1.0
answer VNET_7_DHCP no
answer VNET_7_VIRTUAL_ADAPTER yes
answer VNET_7_NAT no
answer VNET_7_HOSTONLY_NETMASK 255.255.255.0
answer VNET_7_HOSTONLY_SUBNET 172.16.2.0
answer VNET_8_DHCP yes
answer VNET_8_DHCP_CFG_HASH 3D61BDA7BAE1C5F1F96E2C50001DC59CBF522194
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_8_HOSTONLY_SUBNET 172.16.199.0
answer VNET_8_NAT yes
answer VNET_8_VIRTUAL_ADAPTER yes

Etape 4, importer la configuration réseau bidouillée

HackBook:Library root# ./vmnet-cfgcli importconfig /tmp/vmconf.txt
Library Loaded
vmnetcfg: vnlimportconfig - import network config data to: /tmp/vmconf.txt

Etape 5, Brancher ses VM, les nouveaux réseaux sont disponibles.

Screen Shot 2013-10-19 at 6.09.37 PM

A+

Posted in Network | Tagged , , , | 1 Comment

À la gloire de Steve Jobs

Ça y est… Apple vend des urnes funéraires.

MacPro

 Ils appellent cela le nouveau Mac Pro :)

Je n’ai pas résisté…

Steve Jobs RIP

Posted in BlaBla | Tagged | Leave a comment

Le CTF a terminé mais pas moi !

Je me suis amusé à modifier le ‘bruteforceur’ que j’ai utilisé pour le chall du CSAW CTF. C’est pour de futurs challs; Il suffit de mettre sa fonction ‘Brute’ en assembleur ou en C pourquoi pas. Le Bitonio bruteforce à l’ancienne en multithread (Sur CPU hein…) en utilisant tous les charactères printables (de space à tilda ). Au retour de la fonction, si EAX est à 1 c’est gagné. A vous de poser votre fonction.

Le bignou est dispo sur mon GitHub

Et ça dépote sur mon Phenom II 4 Core, Il torche les 742 Milliards de combinaison de 1 à 6 char en 47mn (263 Millions de Hash/sec). Après tout dépend du Hash, ici il ne coute rien en processing.

Et voila sur le CTF de ce week-end

$ time ./brute
0:40:20 Len 1 Thread 1 start: ' ' to  '7'
0:40:20 Len 1 Thread 2 start: '8' to  'O'
0:40:20 Len 1 Thread 3 start: 'P' to  'g'
0:40:20 Len 1 Thread 4 start: 'h' to  '~'
0:40:20 Len 2 Thread 1 start: '  ' to  '~7'
0:40:20 Len 2 Thread 2 start: ' 8' to  '~O'
0:40:20 Len 2 Thread 3 start: ' P' to  '~g'
0:40:20 Len 2 Thread 4 start: ' h' to  '~~'
0:40:20 Len 3 Thread 1 start: '   ' to  '~~7'
0:40:20 Len 3 Thread 2 start: '  8' to  '~~O'
0:40:20 Len 3 Thread 3 start: '  P' to  '~~g'
0:40:20 Len 3 Thread 4 start: '  h' to  '~~~'
0:40:20 Len 4 Thread 1 start: '    ' to  '~~~7'
0:40:20 Len 4 Thread 2 start: '   8' to  '~~~O'
0:40:20 Len 4 Thread 3 start: '   P' to  '~~~g'
0:40:20 Len 4 Thread 4 start: '   h' to  '~~~~'
0:40:21 Len 5 Thread 1 start: '     ' to  '~~~~7'
0:40:21 Len 5 Thread 2 start: '    8' to  '~~~~O'
0:40:21 Len 5 Thread 3 start: '    P' to  '~~~~g'
0:40:21 Len 5 Thread 4 start: '    h' to  '~~~~~'
0:40:47 Len 6 Thread 1 start: '      ' to  '~~~~~7'
0:40:47 Len 6 Thread 2 start: '     8' to  '~~~~~O'
0:40:47 Len 6 Thread 3 start: '     P' to  '~~~~~g'
0:40:47 Len 6 Thread 4 start: '     h' to  '~~~~~~'
0:54:22 Got a Winner ---->62:33:20:36:3D:57<->b3 6=W<---- WIN

real    14m1.966s
user    54m50.174s
sys     0m0.028s

Depuis le CTF qui était tombé en 4h , j’en suis  à 14 mn désormais (6 Char printables soit 42 Bits, pour 54mn de temps réel sur tous les CPUs).

1300x plus vite que la version “John | perl”

C’est clair, c’est pas openCL mais cela suffit à mon [Mode auto-satisfation ON]

Le drame c’est que comme d’hab, un charset de a à z fait mieux et plus vite ,)

$ time ./brute 
2:22:54 Len 1 Thread 1 start: 'a' to 'g' 
2:22:54 Len 1 Thread 2 start: 'h' to 'n' 
2:22:54 Len 1 Thread 3 start: 'o' to 't' 
2:22:54 Len 1 Thread 4 start: 'u' to 'z' 
2:22:54 Len 2 Thread 1 start: 'aa' to 'zg' 
2:22:54 Len 2 Thread 2 start: 'ah' to 'zn' 
2:22:54 Len 2 Thread 3 start: 'ao' to 'zt' 
2:22:54 Len 2 Thread 4 start: 'au' to 'zz' 
2:22:54 Len 3 Thread 1 start: 'aaa' to 'zzg'
2:22:54 Len 3 Thread 2 start: 'aah' to 'zzn' 
2:22:54 Len 3 Thread 3 start: 'aao' to 'zzt' 
2:22:54 Len 3 Thread 4 start: 'aau' to 'zzz' 
2:22:54 Len 4 Thread 1 start: 'aaaa' to 'zzzg' 
2:22:54 Len 4 Thread 2 start: 'aaah' to 'zzzn' 
2:22:54 Len 4 Thread 3 start: 'aaao' to 'zzzt' 
2:22:54 Len 4 Thread 4 start: 'aaau' to 'zzzz' 
2:22:54 Len 5 Thread 1 start: 'aaaaa' to 'zzzzg' 
2:22:54 Len 5 Thread 2 start: 'aaaah' to 'zzzzn' 
2:22:54 Len 5 Thread 3 start: 'aaaao' to 'zzzzt' 
2:22:54 Len 5 Thread 4 start: 'aaaau' to 'zzzzz' 
2:22:54 Len 6 Thread 1 start: 'aaaaaa' to 'zzzzzg' 
2:22:54 Len 6 Thread 2 start: 'aaaaah' to 'zzzzzn' 
2:22:54 Len 6 Thread 3 start: 'aaaaao' to 'zzzzzt' 
2:22:54 Len 6 Thread 4 start: 'aaaaau' to 'zzzzzz' 
2:22:55 Len 7 Thread 1 start: 'aaaaaaa' to 'zzzzzzg' 
2:22:55 Len 7 Thread 2 start: 'aaaaaah' to 'zzzzzzn' 
2:22:55 Len 7 Thread 3 start: 'aaaaaao' to 'zzzzzzt' 
2:22:55 Len 7 Thread 4 start: 'aaaaaau' to 'zzzzzzz' 
2:23:5 Got a Winner ---->78:66:70:63:65:79:70<->xfpceyp<---- WIN

real 0m11.081s
user 0m42.999s
sys 0m0.016s

 

Posted in Asm, Coding | Tagged , , , , | Leave a comment

CSAW-CTF – Reverse 300 WriteUp

Ce week end s’est tenu l’édition 2013 du CSAW-CTF. Bien ! J’y ai pas fait grand chose (as usual), mon week end dans la vie réelle étant chargé. J’ai eu cependant ce petit reverse de 300Pts pour BigDaddy ;) au final GG les gars, 6800 Pts, 18eme ex aequo sur 1387.

Voici la petite histoire;

Ce même vendredi Yodzeb n’était plus tenable, il a commencé a désosser tout seul le chall reverse 300 au GDB (oui, c’est un genre de geek reverveur sado maso). Il a passé tout l’après midi à tenter de trouver le password de façons détournée. Celui-ci était caché dans un crackme accessible à distance qui quand on lui donne le bon password, va lire et affiche un fichier. Dès lors il est apparu qu’a part brute forcer le mot de passe on n’arriverai pas a grand choses car le mot de passe passe dans une moulinette du diable qui shift et add les octets.

Capture d’écran 2013-09-21 à 17.00.58

En clair on commence avec un magic number 0x539h (1337), on le multiplie par 32 et on additionne le caractère de notre password. On rajoute au résultat le résultat de l’opération du dernier tour. et on recommence pour le caractère suivant. Le tout étant potentiellement écrété naturellement par les registre 32bits.

Au final il faut tomber sur 0xEF2E3558h sinon on perd. Il était possible de trouver rapidement cette fonction en reverse statique, le programme ne cachant pas grand choses. Sous IDA il suffit d’afficher les strings, de double cliquer sur le message “Invalide registration code” puis X et on y est. Apres le code de hashing vu plus haut, si EDX est égal au chiffre attendu on gagne.

Capture d’écran 2013-09-21 à 17.20.17

Capture d’écran 2013-09-21 à 17.19.20

Voici la version ‘perl’ du dit algorithme (c) YodZeb.

    $start=0x539;
    foreach $c (split //) {
        if ($c!~/\n/) {
            $old=$start;
            $start=( ($old << 5) + $old + ord($c) ) ;
            $start &= 0xFFFFFFFF;
        }
    }

Avec ce genre de moulinette tôt ou tard on tombe sur une collision, la version ‘Perl’ de cet algo n’ayant pas fait mouche avec une juteuse wordlist, et n’ayant pas les compétences mathématique pour le faire élégamment (Si tenté que l’on puisse); Allons y pour un brute forçage plus académique. Avec un peu d’optimisation je suis arrivé à 19 millions de hashs/sec sur un seul CPU de mon petit AMD Phenom II et je monte a 28 avec un peut de nettoyage de code C pour le write-up.

C’est l’occasion de monter comment on appelle une routine ‘pure assembleur’ en C. Ca pourra toujours re-servir. Première étape ré-encoder la fonction en ASM. Pour que cela dépote plus,. L’idée est de virer le plus possible les accès mémoire dans la boucle interne et de garder toute la mamaille dans des registres. Voici ma version du hash, plus ‘concise’ :

;File hash.asm

section .text
GLOBAL mybrute 

mybrute:
  ; Normalement il faut un appel  
  ;       qui sauve ebp et esp 
  ; Mais ici on touchera pas a la pile 
  ; on s'en passe et on libere un registre

  ;[esp] = retour addr
  ;[esp+4]  = mystring

    mov   esi, dword [esp+4]  ; mystring
    xor   eax,eax    ; pour nettoyer la partie haute d'eax
    lodsb            ; On increment ESI, on met le 1er char dans AL
    mov   ebx, 0x539 ; Ebx sera le checksum, on y met le magicnumber

.myloop
    xor   ecx,ecx    ; xor 32 suivis de mov 8...
    mov   cl,al      ; equivalent a movzx mais en moins de cycles
    mov   edx,ebx    ; [currentsum] est ebx
    shl   edx,5      ; Multiplication
    add   ecx,edx    ; Addition avec char   
    add   ebx,ecx    ; Addition avec checksum 
    lodsb            ; pointer+1, next char dans al
    test  al,al      ; est t'on a la fin de la stringZ ?
    jnz   .myloop

  ; Ici EAX est a O, en C, 1 c'est true  
    cmp    ebx, 0xEF2E3558 ; TEST pour la string mystère
    je    .good
    ret
.good:
    inc    eax
    ret

Tout ce qu’il faut dans le fichier ASM c’est déclarer la fonction pour l’exportation avec le mot clef GLOBAL (voir ligne 4), la convention d’appel en C pour 32bits passera les paramètres de la fonction sur la pile. ici je vais appeller ma fonction avec comme paramètre une string. Pour les fans qui veulent se renseigner sur le grand bordel que sont les convention d’appel, il y a une page Wikipedia pour cela. bref il nous suffira de faire.

mybrute(‘toto’);

Sur la pile j’aurai donc dans l’ordre l’adresse de retour puis l’offset de cette string. au retour le C vérifie eax qui est a 0 false ou 1 pour true. EBP et ESP doivent être préservés.

voici le code C autour;

/*
brute.c
(c) Thanat0s.trollprod.org / 2013 

// jusque 6 char printable 742.912.017.120  742 Milliards de combinaisons...
*/

// ************ LIB ***************
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
extern mybrute () asm ("mybrute");

// ********* Variables *************
int g_bf_len, g_char_max,pass_len, g_char_min;

// ************ CODE ***************

// Hexadecimal print
void hexprint(unsigned char buf[255],int x) {
  int i;
  for (i = 0; i < x; i++) {
      if (i > 0) printf(":");
          printf("%02X", buf[i]);
  }
}

// BruteForce loop from AAA to ZZZ
void brute_force(int max_len,int char_max,int min_char) {
  unsigned char tmp_buff[255];
  int last_char, count, idx = 0;

  // remplis le buffer de AAAA
  for (idx = 0; idx <= max_len; idx++) {
    tmp_buff[idx] = min_char;
  }
  tmp_buff[0]--; // Fixup 1er Char

  // Big Loop.. tant que le dernier char est <...
  while (tmp_buff[max_len] <=  min_char    ) {
    tmp_buff[0]++;  // inc char

  // Scan et inc/dec char autour
  for (idx = 0; idx < max_len; idx++ )  {
    if (tmp_buff[idx] > char_max ) {  // inc char suivant
      tmp_buff[idx] = min_char;
      tmp_buff[idx+1]++;
    }
  }
  last_char = tmp_buff[max_len]; // Create Stringz
  tmp_buff[max_len]=0;

  // TEST print si ok
  if (mybrute(tmp_buff)) {
    printf("\nGot a Winner ---->");
    hexprint(tmp_buff,idx);
    printf ("<->%s<---- WIN\n",tmp_buff);
    exit(0);  // Break on WIN
  }
  tmp_buff[max_len] = last_char;
 }
}

// Main programm
int main() {
  for (pass_len = 1;  pass_len <= 25   ; ++pass_len) { // Bruteforcons de 1 a 25 Char (mec patient)
    g_char_max = 126; // Maximum tilda
    g_char_min =32; // min char commence au espace
    brute_force(pass_len,g_char_max,g_char_min);
  }

  printf("Welcome in 2019, i didn't find it\n");
  return 0;
}

Et le makefile qui va bien;

all: brute

force: clean brute

clean:
        rm brute *.o

brute: brute.c hash.o
        gcc -c brute.c
        gcc hash.o brute.o -o brute
        chmod +x brute

hash.o: hash.asm
        yasm -f elf -m x86 hash.asm -o hash.o

Avec ça, et la combinaison juteuse de tous les caractères printables de 0x20h ‘espace’ à 0x7Eh ’tilda’ je m’en suis sortis avant que je n’eu a me lancer dans une laborieuse version multi-threadé. Le mot de passe est apparu en pleine nuit en moins de 4h. La version ‘propre’ le fait en un peu plus de 2h.

$ time ./brute

Got a Winner ---->62:33:20:36:3E:36<->b3 6>6<---- WIN

real 124m36.048s
user 124m1.713s
sys 0m0.000s

Ce genre de truc donne envie de mettre le doigt dans Opencl la prochaine fois !

Au flag, on sent que quelque part un soft utilise cela… mais lequel !

Enter registration code: b3 6>6
Thank you, valued customer!
Your key is: day 145: they still do not realize this software sucks

 

 

 

 

 

 

Posted in Asm, Challenge, Coding, Reverse | Tagged , , , , , , | Leave a comment

Bande de Bots !

Sérieux les gars… vous n’avez pas un autres websites sous wordpress plus juteux ? vous avez lu la configuration de harden de wordpress ?

302 IPs différentes bannies juste aujourd’hui pour avoir tenter de bruteforcer la page d’admin.

Merci donc à :

1.172.92.106; 2.181.70.35; 2.185.116.158; 2.36.43.72; 2.84.247.6; 2.94.77.141; 5.129.228.118; 5.13.142.58; 5.164.86.227; 5.166.255.124; 5.167.150.48; 5.178.163.9; 5.245.115.23; 5.248.136.103; 5.248.31.205; 24.135.202.146; 24.35.36.72; 24.72.59.58; 31.133.65.96; 31.16.187.60; 31.180.104.248; 31.200.30.62; 31.202.222.193; 31.42.5.209; 36.73.193.60; 37.112.26.87; 37.115.148.49; 37.115.171.140; 37.115.192.97; 37.115.198.143; 37.192.230.53; 37.203.201.60; 37.25.103.75; 37.55.93.122; 41.232.36.150; 41.249.29.231; 41.35.10.111; 41.43.152.253; 41.96.84.152; 42.114.187.175; 42.114.231.120; 42.114.7.34; 42.115.21.27; 42.118.198.162; 42.119.112.69; 42.70.87.174; 46.10.250.72; 46.10.32.137; 46.118.177.108; 46.118.33.92; 46.149.188.83; 46.158.103.47; 46.165.60.234; 46.172.195.2; 46.172.253.189; 46.175.188.20; 46.200.101.166; 46.211.9.48; 46.219.64.116; 46.238.34.243; 46.246.170.199; 46.30.167.70; 46.53.195.43; 46.71.146.71; 49.159.134.220; 49.49.149.177; 58.186.129.241; 58.9.58.8; 77.122.133.238; 77.49.98.200; 77.71.18.184; 77.71.43.246; 77.73.139.27; 77.85.219.13; 77.94.194.8; 78.137.52.154; 78.154.165.170; 78.160.213.207; 78.166.251.182; 78.191.157.180; 78.26.144.202; 78.30.249.194; 78.85.19.123; 79.105.48.0; 79.112.231.84; 79.126.119.114; 79.126.68.64; 80.250.79.151; 81.182.86.174; 81.91.182.164; 82.209.114.192; 82.222.97.95; 83.7.183.160; 84.0.194.106; 84.1.191.124; 85.102.215.168; 85.117.50.220; 85.133.134.211; 85.135.111.94; 85.234.29.91; 85.241.186.236; 85.26.82.37; 85.95.182.239; 87.252.227.124; 87.252.227.56; 87.97.150.166; 88.231.232.99; 88.235.201.232; 88.240.95.173; 89.133.197.104; 89.204.56.4; 89.222.134.45; 89.42.249.111; 89.67.90.103; 90.177.139.200; 90.195.16.123; 90.220.124.169; 91.105.176.117; 91.200.203.24; 91.200.54.32; 91.201.112.254; 91.202.134.125; 91.215.176.10; 91.219.140.47; 91.219.220.232; 91.234.139.21; 91.236.31.16; 91.239.105.26; 92.112.194.238; 92.125.59.136; 92.241.5.15; 92.243.182.11; 92.47.24.42; 92.52.185.41; 92.96.229.135; 93.100.121.112; 93.178.242.39; 93.183.144.93; 93.183.146.188; 93.186.213.237; 93.77.1.116; 93.79.88.44; 93.81.61.130; 93.87.148.180; 94.137.185.37; 94.153.101.247; 94.156.106.32; 94.21.61.156; 94.236.152.230; 94.243.216.27; 94.244.21.231; 94.25.11.83; 94.45.98.122; 94.54.130.180; 94.59.2.143; 94.96.49.22; 95.107.114.20; 95.107.23.50; 95.133.177.194; 95.133.247.155; 95.134.49.117; 95.135.122.19; 95.158.216.146; 95.189.58.106; 95.27.16.90; 95.37.113.115; 95.78.207.162; 95.78.70.80; 99.164.182.240; 103.10.208.2; 103.245.20.2; 103.5.132.52; 109.108.70.158; 109.108.70.68; 109.110.73.116; 109.174.2.17; 109.201.243.62; 109.252.76.107; 109.254.49.11; 109.86.231.133; 109.87.118.222; 109.87.225.22; 109.93.81.111; 110.77.152.127; 113.166.192.233; 113.178.93.198; 113.179.0.200; 113.23.87.11; 115.135.135.80; 115.67.101.91; 115.72.32.26; 116.19.83.214; 116.202.205.179; 117.199.72.96; 117.3.176.115; 118.173.7.173; 118.99.65.90; 124.158.109.140; 128.68.196.13; 128.70.126.26; 128.71.37.57; 130.0.53.224; 139.228.172.196; 141.101.0.20; 150.164.238.26; 151.244.148.239; 151.244.69.83; 151.74.71.114; 159.0.214.99; 159.224.253.118; 160.75.201.197; 162.210.196.161; 171.101.112.196; 171.5.196.117; 175.101.128.28; 176.113.113.181; 176.115.145.147; 176.14.8.204; 176.193.9.184; 176.194.211.240; 176.202.105.21; 176.209.20.94; 176.222.170.144; 176.42.252.102; 176.51.40.86; 176.52.7.66; 176.67.29.74; 176.73.145.126; 176.8.51.124; 176.8.57.114; 176.97.253.240; 177.226.7.71; 177.41.113.69; 177.98.146.220; 177.98.198.221; 178.122.199.70; 178.123.131.3; 178.123.208.102; 178.124.111.116; 178.124.115.56; 178.126.162.117; 178.137.127.221; 178.150.247.61; 178.151.252.201; 178.151.27.208; 178.151.38.229; 178.158.100.25; 178.158.96.38; 178.159.221.188; 178.165.8.123; 178.172.187.98; 178.205.187.198; 178.213.106.123; 178.221.233.44; 178.221.27.89; 178.252.194.24; 178.252.203.162; 178.47.106.90; 178.75.193.243; 178.93.4.172; 178.93.88.212; 178.94.81.167; 180.180.22.117; 180.183.232.77; 183.179.36.246; 183.91.9.149; 186.212.18.107; 188.116.168.220; 188.134.40.52; 188.138.147.120; 188.18.215.102; 188.186.25.140; 188.233.44.6; 188.245.209.88; 188.25.18.153; 188.253.178.79; 188.27.60.15; 188.32.218.100; 188.49.254.94; 188.53.64.65; 190.90.57.225; 192.188.242.172; 193.109.128.178; 193.160.224.6; 194.1.168.159; 194.158.204.250; 196.195.249.241; 200.118.146.10; 200.85.41.126; 212.1.104.34; 212.108.245.224; 212.112.119.22; 212.200.132.4; 212.235.115.23; 212.43.47.4; 212.47.138.155; 212.50.52.234; 212.58.13.30; 213.200.62.16; 213.220.197.68; 217.174.54.189; 220.134.45.169; 220.136.155.51;

Donc, en plus maintenant, y a une authentification basique … lachez, lachez ,)

Posted in BlaBla, WebSecurity | Tagged , , , | 2 Comments

Original; le CTF de la centrifugeuse.

Ne le nions pas, on a globalement tous, nous européens, une vision assez critique sur l’Iran. Quelle erreur ! Ils sont vachement plus cools qu’en France ;)… Je m’explique;

Ce week-end un CTF était organisé par la team Asis. Team qui m’était totalement inconnue jusqu’à présent et qui n’est pas franchement historiquement super active. Soit, elle se lance dans l’organisation d’un CTF avec 1500e de prix.

Le nom de domaine est asis-ctf.ir

domain:		asis-ctf.ir
ascii:		asis-ctf.ir
remarks:	(Domain Holder) Solmaz Salimi
remarks:	(Domain Holder Address) NO. 1108, Hosseinieh Ershad, Mirdamad St., Shariaty St., Tehran, Tehran, IR
holder-c:	ss2026-irnic
admin-c:	ss2026-irnic
tech-c:		ss2026-irnic
nserver:	ns1.asis-ctf.ir
nserver:	ns2.asis-ctf.ir
nserver:	ns3.asis-ctf.ir
nserver:	ns4.asis-ctf.ir
last-updated:	2013-06-29
expire-date:	2014-05-29
source:		IRNIC # Filtered

nic-hdl:	ss2026-irnic
person:		Solmaz Salimi
e-mail:		LisbethZone@gmail.com
address:	NO. 1108, Hosseinieh Ershad, Mirdamad St., Shariaty St., Tehran, Tehran, IR
phone:		+982122901378
source:		IRNIC # Filtered

L’email ne remonte aucun hits chez google. L’ip est par contre dans un range des plus rigolos ;

$ nslookup asis-ctf.ir
Server:		208.67.222.222
Address:	208.67.222.222#53

Non-authoritative answer:
Name:	asis-ctf.ir
Address: 78.38.193.252

Parce qu’en fait elle appartient à un petit /24 de l’agence de l’énergie atomique d’Iran

inetnum:        78.38.193.0 - 78.38.193.255
netname:        AEOI
descr:          Atomic Energy Organization of Iran
country:        IR
admin-c:        MA6138-RIPE
admin-c:        HRN14-RIPE
tech-c:         AK10826-RIPE
tech-c:         NG1414-RIPE
status:         ASSIGNED PA
mnt-by:         AS12880-MNT
source:         RIPE # Filtered

person:         Afsaneh Khoshbakht
address:        Atomic Organization of Iran
address:        End of Karegar Street
address:        Tehran
address:        Ir
phone:          +98 21 8003702
nic-hdl:        AK10826-RIPE
source:         RIPE # Filtered

person:         Hamid Reza Nasiri
address:        Atomic Organization of Iran
address:        End of Karegar Street
address:        Tehran
address:        Ir
phone:          +98 21 8003702
nic-hdl:        HRN14-RIPE
source:         RIPE # Filtered

person:         Mehdi Alibegli
address:        Atomic Organization of Iran
address:        End of Karegar Street
address:        Tehran
address:        Iran
phone:          +98 21 8003702
nic-hdl:        MA6138-RIPE
source:         RIPE # Filtered

person:         Nahid Gourani
address:        Atomic Organization of Iran
address:        End of Karegar Street
address:        Tehran
address:        Ir
phone:          +98 21 8003702
nic-hdl:        NG1414-RIPE
source:         RIPE # Filtered

route:          78.38.128.0/17
descr:          DCI-Route
origin:         AS12880
mnt-by:         AS12880-MNT
source:         RIPE # Filtered

C’est aussi le cas des serveurs DNS. Fortement étrange n’est-ce pas ? Je ne savais pas que ce genre d’agence faisait aussi hosting et provider DNS. La distribution des ranges ip semble bien plus flexible qu’en France. Je doute qu’un jour on puisse aisément faire un CTF labouré par des hordes de hackers velus sur un des ranges du ministère de l’Energie ou de la Défense. ;) Sachant qu’en plus, c’est quand même la dite organisation qui s’est fait poncer les centrifugeuses dans la très médiatisée opération StuxNet. C’est quand même étrange cocasse !

Enfin voila, vous me direz… hooo bin c’est peut être pas lié, il bêle au complot le Thanat0s. Malheureusement, leur DNS, pour des gens qui se sont fait poncer et qui sont l’objet d’une cible certaine n’est toujours pas configuré comme il devrait. Le transfert de zone est actif, on peut donc lister tous les records. A noter que si c’était un truc d’état situé en France, je suis sur, au regard du droit français, une petite chose comme rentrerai aisément dans l’article 323-1, “Le fait d’accéder ou de se maintenir, frauduleusement, dans tout ou partie d’un système de traitement automatisé de données est puni de deux ans d’emprisonnement et de 30000 euros d’amende”. Mais bon, il n’y a pas de coopération vers l’Iran hein, je peux ? Je vous épargne les signatures DNSSec voici ce qu’on trouve pour la zone aeoi.ir.

# dig -t axfr @80.191.32.2 aeoi.org.ir > soa-aeoi.ir
# cat soa-aeoi.ir| grep -P "IN\tA" |
aeoi.org.ir.            38400   IN      A       80.191.7.220
aeoi.org.ir.            38400   IN      A       80.191.32.9
aeoi.org.ir.            38400   IN      A       217.218.11.168
AHWP.aeoi.org.ir.       38400   IN      A       80.191.7.220
AHWP.aeoi.org.ir.       38400   IN      A       80.191.32.9
AHWP.aeoi.org.ir.       38400   IN      A       217.218.11.168
azmoon.aeoi.org.ir.     38400   IN      A       80.191.7.221
azmoon.aeoi.org.ir.     38400   IN      A       80.191.32.15
azmoon.aeoi.org.ir.     38400   IN      A       217.218.11.167
basij.aeoi.org.ir.      38400   IN      A       80.191.7.220
basij.aeoi.org.ir.      38400   IN      A       80.191.32.9
basij.aeoi.org.ir.      38400   IN      A       217.218.11.168
cert.aeoi.org.ir.       38400   IN      A       78.38.193.27
ctf.aeoi.org.ir.        38400   IN      A       78.38.193.222
CTF-2013.aeoi.org.ir.   38400   IN      A       78.38.193.180
CTF-irc.aeoi.org.ir.    38400   IN      A       78.38.193.181
ebook.aeoi.org.ir.      38400   IN      A       80.191.7.221
ebook.aeoi.org.ir.      38400   IN      A       80.191.32.15
ebook.aeoi.org.ir.      38400   IN      A       217.218.11.167
emailserver.aeoi.org.ir. 38400  IN      A       80.191.7.222
emailserver.aeoi.org.ir. 38400  IN      A       80.191.32.4
GIO.aeoi.org.ir.        38400   IN      A       80.191.7.220
GIO.aeoi.org.ir.        38400   IN      A       80.191.32.9
GIO.aeoi.org.ir.        38400   IN      A       217.218.11.168
ictc.aeoi.org.ir.       38400   IN      A       78.38.193.24
ictcbak.aeoi.org.ir.    38400   IN      A       78.38.193.25
inis.aeoi.org.ir.       38400   IN      A       80.191.32.13
inis.aeoi.org.ir.       38400   IN      A       217.218.11.164
inra.aeoi.org.ir.       38400   IN      A       80.191.7.221
inra.aeoi.org.ir.       38400   IN      A       80.191.32.15
istat.aeoi.org.ir.      38400   IN      A       78.38.193.224
journal.aeoi.org.ir.    38400   IN      A       78.38.193.45
khorshid.aeoi.org.ir.   38400   IN      A       80.191.7.220
khorshid.aeoi.org.ir.   38400   IN      A       80.191.32.9
khorshid.aeoi.org.ir.   38400   IN      A       217.218.11.168
mail.aeoi.org.ir.       38400   IN      A       80.191.7.222
mail.aeoi.org.ir.       38400   IN      A       80.191.32.4
mail.aeoi.org.ir.       38400   IN      A       217.218.11.169
mlsrv.aeoi.org.ir.      38400   IN      A       78.38.193.27
ns1.aeoi.org.ir.        38400   IN      A       80.191.32.2
ns2.aeoi.org.ir.        38400   IN      A       80.191.32.3
ns3.aeoi.org.ir.        38400   IN      A       78.38.193.2
ns4.aeoi.org.ir.        38400   IN      A       217.218.11.162
ictcbak.aeoi.org.ir.    38400   IN      A       78.38.193.25
inis.aeoi.org.ir.       38400   IN      A       80.191.32.13
inis.aeoi.org.ir.       38400   IN      A       217.218.11.164
inra.aeoi.org.ir.       38400   IN      A       80.191.7.221
inra.aeoi.org.ir.       38400   IN      A       80.191.32.15
istat.aeoi.org.ir.      38400   IN      A       78.38.193.224
journal.aeoi.org.ir.    38400   IN      A       78.38.193.45
khorshid.aeoi.org.ir.   38400   IN      A       80.191.7.220
khorshid.aeoi.org.ir.   38400   IN      A       80.191.32.9
khorshid.aeoi.org.ir.   38400   IN      A       217.218.11.168
mail.aeoi.org.ir.       38400   IN      A       80.191.7.222
mail.aeoi.org.ir.       38400   IN      A       80.191.32.4
mail.aeoi.org.ir.       38400   IN      A       217.218.11.169
mlsrv.aeoi.org.ir.      38400   IN      A       78.38.193.27
ns1.aeoi.org.ir.        38400   IN      A       80.191.32.2
ns2.aeoi.org.ir.        38400   IN      A       80.191.32.3
ns3.aeoi.org.ir.        38400   IN      A       78.38.193.2
ns4.aeoi.org.ir.        38400   IN      A       217.218.11.162
nstri.aeoi.org.ir.      38400   IN      A       80.191.7.220
nstri.aeoi.org.ir.      38400   IN      A       80.191.32.9
nstri.aeoi.org.ir.      38400   IN      A       217.218.11.168
Parto.aeoi.org.ir.      38400   IN      A       80.191.7.220
Parto.aeoi.org.ir.      38400   IN      A       80.191.32.9
Parto.aeoi.org.ir.      38400   IN      A       217.218.11.168
repo.aeoi.org.ir.       38400   IN      A       78.38.193.101
scc.aeoi.org.ir.        38400   IN      A       80.191.7.220
scc.aeoi.org.ir.        38400   IN      A       80.191.32.9
scc.aeoi.org.ir.        38400   IN      A       217.218.11.168
simorgh.aeoi.org.ir.    38400   IN      A       80.191.32.8
simorgh.aeoi.org.ir.    38400   IN      A       217.218.11.171
Sooreh.aeoi.org.ir.     38400   IN      A       80.191.7.220
Sooreh.aeoi.org.ir.     38400   IN      A       80.191.32.9
Sooreh.aeoi.org.ir.     38400   IN      A       217.218.11.168
tamas.aeoi.org.ir.      38400   IN      A       80.191.32.6
wfa.aeoi.org.ir.        38400   IN      A       80.191.7.220
wfa.aeoi.org.ir.        38400   IN      A       80.191.32.9
wfa.aeoi.org.ir.        38400   IN      A       217.218.11.168
www.aeoi.org.ir.        38400   IN      A       80.191.7.220
www.aeoi.org.ir.        38400   IN      A       80.191.32.9
www.aeoi.org.ir.        38400   IN      A       217.218.11.168
YCG.aeoi.org.ir.        38400   IN      A       80.191.7.220
YCG.aeoi.org.ir.        38400   IN      A       80.191.32.9
YCG.aeoi.org.ir.        38400   IN      A       217.218.11.168

Il faut se faire une raison, Le Cert de l’énergie atomique Iranienne semble se mettre au CTF ;) la raison finale reste a votre appréciation.

Y aura t’il des challs à base de Sha ? ( Bon ok, ok, Elle est pourrie cette vanne et je l’assume… Je peux la faire librement sur ce blog. Sur l’IRC du CTF c’est interdit de la faire, c’est dans le réglement. Si ! Bien sur que cela vise la vanne du sha en langue française !).

Keep your irrelevant thoughts off the IRC channel. 
No one is interested about what your cat is doing.

Bref, On est bien chez nous, épiés certes mais pas encore censurés. Et partout on s’entraine à la sécurité informatique. Tant mieux.

Posted in BlaBla, Hacking | Tagged , | Leave a comment

Le SELECT, JOIN doit être tendu…

Je suis tombé de ma chaise. En France, on connait le STIC et EDVIGE. Mais il y a (au moins) 58 fichiers pour recenser l’activité des “Humbles Citoyens”.

http://www.assemblee-nationale.fr/13/rap-info/i1548.asp#P2142_655270

Posted in BlaBla | Tagged | Leave a comment

J’frai pas ça tous les jours !

De l’étrange aujourd’hui…

Un petit script ‘Powershell’ qui sort le plan du réseau (ranges et DC par sites) depuis les infos de l’active directory et qui les mets en forme pour graphviz. (C’est laborieux pour moi le powershell !). Oui… le simple user a droit à de l’info !

Import-Module ActiveDirectory

write-output 'digraph G {'

$configNCDN = (Get-ADRootDSE).ConfigurationNamingContext
$siteContainerDN = ("CN=Sites," + $configNCDN)
$siteObjs = Get-ADObject -SearchBase $siteContainerDN -filter { objectClass -eq "site" } -properties "siteObjectBL", name
foreach ($siteObj in $siteObjs) {
    $subnetArray = New-Object -Type string[] -ArgumentList $siteObj.siteObjectBL.Count
    foreach ($subnetDN in $siteObj.siteObjectBL) {
        $subnetName = $subnetDN.SubString(3, $subnetDN.IndexOf(",CN=Subnets,CN=Sites,") - 3)
		write-Output  "`"$($siteObj.Name)`" -> `"$subnetName`" ;"  
    }

$siteName =  $siteObj.Name
$configNCDN = (Get-ADRootDSE).ConfigurationNamingContext
$siteContainerDN = ("CN=Sites," + $configNCDN)
$serverContainerDN = "CN=Servers,CN=" + $siteName + "," + $siteContainerDN
$dcObjs= Get-ADObject -SearchBase $serverContainerDN -SearchScope OneLevel -filter { objectClass -eq "Server" } -Properties "DNSHostName"

 foreach ($dcobj in $dcObjs) {
	if ($dcobj.DNSHostName) { 
	write-output "`"$($dcobj.DNSHostName)`" -> $siteName ;"
	 }
	}
}
write-output "}"

Petit tips, pour pas tuer son graphviz, ne pas oublier de faire la sortie en ascii et pas en unicode !

PS C:\temp> .\list_netsite.ps1 | Out-File toto.gviz -encoding ascii
Posted in Network | Tagged , , , | Leave a comment