Un monde d'octets

Aller au contenu | Aller au menu | Aller à la recherche

vendredi, mars 1 2024

Metasploit : topologie d'un exploit

l'application d'un exploit metasploit (ici en exemple l'enumération ssh des utilisateur) se décompose généralement ansi :

use auxiliary/scanner/ssh/ssh_enumusers
show options
set RHOSTS 192.168.9.2
set USER_FILE userfile
exploit

Dans notre exemple, nous auront créé un fichier "./userfile" qui listera les utilisateurs à tester (parfois aux vue des logs de mes bastions, je pense que certains hackers utilisent cela, ahahah)

quelques options sont dites avancées :

show advanced
set verbose true
set SSH_DEBUG true

Exegol : un framework d'outils de pentesting

Exegol est une alternative docker à Kali Linux. Cela permet :

  • d'avoir plusieurs version (de très light a complète) de votre framework
  • de faire tourner un environnement d'exploit par projet afin de segmenter vos travaux

La documentation d'install est simple et fonctionnelle, mais un problème subsiste dans l'image full : une erreur à msfdb init

Pour la corriger, il faut exécuter le script suivant :

cp -R /root/.bundle  /var/lib/postgresql
chown -R postgres:postgres /var/lib/postgresql/.bundle
sudo -u  postgres sh -c "cd /opt/tools/metasploit-framework && /usr/local/rvm/gems/ruby-3.2.2@metasploit/wrappers/bundle exec /opt/tools/metasploit-framework/msfdb init"
cp -R /var/lib/postgresql/.msf4 /root

ensuite un db_status dans msfconsole vous confirmera que tout est bien installé !

mercredi, mars 18 2020

Kali Everywhere

Une news intéressante, la mise à disposition d'une image lxc kali :

## Launch the container
lxc launch images:kali/current/amd64 my-kali

## Install some additional applications, use either light or default
lxc exec my-kali -- passwd                         ## First things first
lxc exec my-kali -- apt install kali-linux-light   ## Bare minimum
lxc exec my-kali -- apt install kali-linux-default ## Default set of packages

## Setup non-root user
lxc exec my-kali -- adduser kali
lxc exec my-kali -- usermod -aG sudo kali
lxc exec my-kali -- sed -i '1 i\TERM=xterm-256color' /home/kali/.bashrc
lxc exec my-kali -- sh -c "echo 'Set disable_coredump false' > /etc/sudo.conf"

## Login
lxc console my-kali

lundi, novembre 18 2019

Hack the box, invitation

Hack the box nous demande de fournir un token d'invitation. Mais il n'est dit nul part ou obtenir ce token. En fait, il faut hacker ce premier formulaire pour l'avoir (faites vos preuves pour entrer ...).

En examinant la page, nous trouvons un js : https://www.hackthebox.eu/js/inviteapi.min.js . En examinant le js, nous voyons qu'ils fournit une fonction makeinvitecode(). Nous retournons sur la page d'invitation, et à l'aide de la console firefox, nos exécutons cette fonction.

Nous obtenons un code résultat contenant qui en décodant le base 64 nous dit d'apper sur /api/invite/generate en POST.

curl -XPOST https://www.hackthebox.eu/api/invite/generate

nous obtenons un nouveau json, qui contient notre payload à décoder en base64 et nous avons notre clef d'invitation !

dimanche, novembre 17 2019

Encore plus d'outils liés au pentesting

- Sherlock
Tester un login sur les réseaux sociaux -> intéressant.

- Infection Monkey
Automated infection tool -> je n'en ai qu'effleuré le vernis, c'est définitivement a regarder

- Galileo
Web Application Audit Framework -> très intéressant

- Imppacket
Collection of Python classes for working with network protocols

mercredi, novembre 6 2019

Python et Metasploit

Pour automatiser certaines taches de metasploit, nous pouvons encore faire une fois appel a python, et a on énorme .... librairie :)

pip3 install pymetasploit

sur kali, nous lancons le démon msfrpcd pour donner accès à celui-ci aux différent pupitreurs (dont armitage par exemple...)

msfrpcd -U msf -P msf

Ici notre démon tournera sur le port par défaut (55553), en écoute sur 0.0.0.0, et utilisera "msf/msf" comme login/password.

Un premier script tout simple, nous permet de lister les exploits disponibles sur le serveur metasploit :

#!/usr/bin/env python3

from pymetasploit3.msfrpc import MsfRpcClient
from pymetasploit3.msfconsole import MsfRpcConsole
from dumper import dump

client = MsfRpcClient('msf',server='192.168.99.201',ssl=True)
for exploit in client.modules.exploits:
    print (exploit)

Pour le reste, je vous dis, à vos claviers !!

Installer des vm Metasploitable pour s'autoformer

il faut au préalable installer vagrant >= 2.2.4, mais aussi les plugins vagrant winrm et winrm-fs

wget -c https://releases.hashicorp.com/vagrant/2.2.6/vagrant_2.2.6_x86_64.deb
sudo dpkg -i vagrant_2.2.6_x86_64.deb

vagrant plugin install winrm
vagrant plugin install winrm-fs

Si vous avez les err

mkdir metasploitable
cd metasploitable
curl -O https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile
vagrant up

mardi, novembre 5 2019

MSF : Armitage

Armitage est un client pour msf, ce qui simplifie quand même beaucoup la vie.

Pour lancer le serveur rpc sous kali, il faut sous la console taper la commande :

load msgrpc ServerHost=0.0.0.0 ServerPort=55553 User=user Pass='picardmemesurgeleilestmieuxquekirk'

[*] MSGRPC Service:  0.0.0.0:55553 
[*] MSGRPC Username: user
[*] MSGRPC Password: picardmemesurgeleilestmieuxquekirk
[*] Successfully loaded plugin: msgrpc

et ensuite, avec votre client armitage (téléchargearble ici, vous pouvez vous connecter à votre serveur.

il faut copier les informations de bdd sur le client utilisant armitage, en créeant un fichier database.yaml comme suit :

vi .armitage/database.yaml

development:
  adapter: postgresql
  database: msf
  username: msf
  password: qwUbAXJOxfzXOW2F74fObidVXKV+fHiHVCsBPkZ1y4Q=
  host: localhost
  port: 5432
  pool: 5
  timeout: 5

production:
  adapter: postgresql
  database: msf
  username: msf
  password: qwUbAXJOxfzXOW2F74fObidVXKV+fHiHVCsBPkZ1y4Q=
  host: localhost
  port: 5432
  pool: 5
  timeout: 5

test:
  adapter: postgresql
  database: msf_test
  username: msf
  password: qwUbAXJOxfzXOW2F74fObidVXKV+fHiHVCsBPkZ1y4Q=
  host: localhost
  port: 5432
  pool: 5
  timeout: 5

L'hôte est localhost, car dans notre cas, armitage tourne sur la machine ayant la bdd et le framework metasploit, et il sagit en fait tu fichier database;yml créé par "msfdb init" sur le serveur hébergeant msf.

A partir de la il suffit d'utiliser une variable d'environnement avant d'appeler armitage pour préciser l'emplacement du fichier database.yml :

export MSF_DATABASE_CONFIG=/home/msf_usr/.armitage/database.yml

Il est bien sur possible de figer cela dans le .bashrc

vendredi, novembre 1 2019

D'autres outils issus de recherche pentest

  • WAScan, Web Application Scanner
  • W3af, Web Application Attack and Audit Framework
  • Tulpar
  • WPSeku, a python wordpress security scanner

je dois les tester, et si le cœur m'en dit, je ferai un post sur leur valeur

dimanche, octobre 27 2019

Radare2 et Graph

Dans le processus de recherche du fonctionnement (et des failles éventuelles) d'un programme compilé, un désassemblage est souvent nécessaire (voire obligatoire).

Un des outils les plus connus reste IDA. Mais il existe un autre outil sous Linux...

Radare2 est un désassembleur puissant avec des fonction évoluées :

  • reverse engineering de code
  • transformation en code plus lisible (ex: mov eax, 18 -> eax=18)
  • graphe des appels systèmes (et bien d'autres)

Et beaucoup d'autres choses que je n'ai pas encore regardé, n'étant pas encore totalement opérationnel sur ce coté du pentesting. mais ce post à surtout pour but de parler du fait que radare2 peut être controlé par un script python, ce qui permet d'automatiser certaines opérations.

Voici à titre d'exemple, un script python qui à partir d'un binaire génère une image jpg du graphe des appels du binaire :

r2graphasm.py :

#!/usr/bin/env python3 

import r2pipe
import sys
import os

try:
  binary=sys.argv[1]
except:
  print ("Usage : %s <binary>" %(sys.argv[0]))
  sys.exit(2)

try:
  out=os.popen("radare2 -v").read()
  if ("radare2 2." in out): version=2
  if ("radare2 3." in out): version=3
except:
  print ("No radare2 installed ???")
  sys.exit(0)

filename=os.path.basename(binary)

r = r2pipe.open(binary)
r.cmd("aaa")

if (version==2):
  r.cmd('ag main > main.dot')

if (version==3):
  r.cmd("s main")
  r.cmd('agfd > main.dot')

os.system ("dot -Tjpg -o "+filename+".jpg main.dot")
os.remove ("main.dot")

Comme vous pouvez le voir dans le code, certaines fonctions de radare2 ont évolué entre la version 2.x et 3.x. Le script en tient compte.

lundi, octobre 14 2019

Enumeration dns

Avec amass

amass enum -d devinci.fr

*.devinci.fr
.
.
.

OWASP Amass v3.1.10                               https://github.com/OWASP/Amass
--------------------------------------------------------------------------------
20 names discovered - ext: 13, dns: 1, cert: 6
--------------------------------------------------------------------------------
ASN: 31216 - BSOCOM
	89.30.0.0/17      	5    Subdomain Name(s)
	89.30.29.64/26    	1    Subdomain Name(s)
ASN: 8075 - MICROSOFT-CORP-MSN-AS-BLOCK - Microsoft Corporation
	40.64.0.0/10      	2    Subdomain Name(s)
ASN: 2200 - FR-RENATER Reseau National de telecommunications pour la Technologie
	194.254.0.0/16    	1    Subdomain Name(s)
ASN: 35540 - OVH-TELECOM, FR
	91.121.32.0/19    	1    Subdomain Name(s)
ASN: 43424 - PROCEAU
	46.252.176.0/20   	1    Subdomain Name(s)
	185.42.116.0/22   	1    Subdomain Name(s)
ASN: 16276 - OVH
	51.38.0.0/16      	1    Subdomain Name(s)
	178.32.0.0/15     	4    Subdomain Name(s)
	54.38.0.0/16      	2    Subdomain Name(s)
	51.75.0.0/16      	1    Subdomain Name(s)
	51.83.0.0/16      	1    Subdomain Name(s)

Avec DNSRecon

dnsrecon -d devinci.fr -n 8.8.8.8

[*] Performing General Enumeration of Domain: devinci.fr
[-] DNSSEC is not configured for devinci.fr
[*] 	 SOA ns1.gandi.net 173.246.98.2
[*] 	 NS ns-183-a.gandi.net 173.246.100.184
[*] 	 NS ns-183-a.gandi.net 2001:4b98:aaaa::b8
[*] 	 NS ns-24-c.gandi.net 217.70.187.25
[*] 	 NS ns-24-c.gandi.net 2604:3400:aaac::19
[*] 	 NS ns-65-b.gandi.net 213.167.230.66
[*] 	 NS ns-65-b.gandi.net 2001:4b98:aaab::42
[*] 	 MX devinci-fr.mail.protection.outlook.com 104.47.1.36
[*] 	 MX devinci-fr.mail.protection.outlook.com 104.47.2.36
[*] 	 A devinci.fr 178.32.112.194
[*] 	 TXT devinci.fr 330c25c28543a4b26026f139147cdc2a
[*] 	 TXT devinci.fr v=spf1 a:dn1051.mis.ovh a:dn1052.mis.ovh include:spf.protection.outlook.com include:spf.mailjet.com ip4:178.237.108.143 ip4:37.187.138.5 ip4:91.121.86.25 ip4:178.32.112.194 ip4:34.251.196.222 ip4:34.251.218.99 ip4:54.76.226.94 ip4:52.214.126.95 ip4:89.30.29.87 ip4:89.30.29.83 ?all
[*] 	 TXT devinci.fr adobe-idp-site-verification=a063b656fac6b8ce5c518e174ce63cd891f45c61716381640e7b0275d975f901
[*] 	 TXT devinci.fr ZOOM_verify_qbIM-NBFTXW8-zVeB4QBgQ
[*] Enumerating SRV Records
[*] 	 SRV _sipfederationtls._tcp.devinci.fr sipfed.online.lync.com 52.112.194.75 5061 1
[*] 	 SRV _sipfederationtls._tcp.devinci.fr sipfed.online.lync.com 2603:1027::b 5061 1
[*] 	 SRV _sip._tls.devinci.fr sipdir.online.lync.com 52.112.193.13 443 1
[*] 	 SRV _sip._tls.devinci.fr sipdir.online.lync.com 2603:1027:0:9::b 443 1
[+] 4 Records Found

dimanche, octobre 13 2019

5 stages of hacking

Le hacker essaye connaitre les failles plus par intérêt culturel que pas volonté de nuire. Beaucoup de société font maintenant appel à des pentester, qui ne sont rien d'autres que des hackers informatiques. Un hacker n'est ni bon, ni mauvais, il est un marteau qui enfonce un clou, et tout dépendra de l'usage qu'on en fera !

Bref, revenons à ces 5 phases d'un hacking. Elle sont citées ici pour comprendre un état d'esprit, pas pour être un cours complet de hacking :

Reconnaissance (passive ou active)

linkdin, google, shodan, ...

Scan et Enumération

portscan, dns enumeration, dirbusting, ...

Gagner l'accès

metasploit, scripts pythons, ...

Maintenir l'accès

rootshells, reverse-shells, ...

Effacer ses traces

anti ids; anti logs, suppression des logs, ...