Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2019-1663-Binary-Analysis | Kitploit
Strumenti/GitHubGitHub/wolffcorentin/cve-2019-1663-binary-analysis
Sicurezza Sistemi EmbeddedAnalisi delle VulnerabilitàExploitReverse EngineeringAnalisi di BinariPaper e RicercaApprendimento e FormazioneBinary Exploitation

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
wolffcorentin/cve-2019-1663-binary-analysis

CVE-2019-1663-Binary-Analysis

Vedi Repository
1 anno faNon ancora revisionato

Analisi binaria di CVE-2019-1663

Autore: Corentin Wolff


Origine della vulnerabilità

Fonte della vulnerabilità

La vulnerabilità ha origine dalla funzione 0x0002BF64, che abusa della funzione strcpy, rendendola soggetta ad attacchi di buffer overflow. Per chiarezza, questa funzione è stata rinominata Login. Di seguito è riportato un frammento che illustra il problema:

root@kitploit:~
undefined4 Login(char *param_1, char *param_2, char *param_3, int param_4) { ... }

In questo frammento, la funzione strcpy viene usata in modo improprio, causando una vulnerabilità di buffer overflow:

root@kitploit:~
if (param_4 == 0) {  
    iVar2 = strncmp(acStack_fa, "enc=", 4);  
    if (iVar2 != 0) {  
        strcpy(acStack_15e, acStack_fa);  
        strcpy(acStack_1c2, param_2);  
        goto LAB_0002c264;  
    }  
}

Identificazione del nome utente

Questa parte del codice controlla il nome utente:

root@kitploit:~
if (iVar2 != 0) {  
    syslog(6, "Web management login failed, user=%s\n", param_1);  
}

Il parametro param_1 è identificato come campo del nome utente.

Verifica della password

Analogamente, param_2 corrisponde alla password, mentre param_3 è identificato come httpd_user.

Flag di login

La variabile login_flag rappresenta gli stati di connessione:

root@kitploit:~
0 → Login error
1 → Admin login successful
2 → Admin login denied due to an existing session
3 → Admin login forcing logout

Tipo di vulnerabilità

Buffer Overflow e strcpy

Come fallisce strcpy

La funzione strcpy non verifica la dimensione della stringa sorgente rispetto alla capacità del buffer di destinazione. Ciò consente di sovrascrivere regioni di memoria adiacenti.

Contesto di sfruttamento

CVE-2019-1663 sfrutta la mancanza di validazione della dimensione dell'input in alcuni modelli di router Cisco.

Fasi dello sfruttamento

root@kitploit:~
a. No Length Check: Unsanitized user input is passed to strcpy.
b. Memory Overflow: Excess data overwrites critical memory regions.
c. Arbitrary Code Execution: Attackers inject and execute malicious code.
d. Exploitation Requirements: Access to the router's web configuration server.
e. Impact: Privileged access, enabling network espionage, traffic redirection, malware installation, or backdoors.

Sfruttamento remoto della vulnerabilità

  1. Condizioni per lo sfruttamento remoto Lo sfruttamento richiede l'accesso al server di configurazione web del router. Se il server non è esposto alla WAN, lo sfruttamento è limitato all'accesso LAN.
  2. Procedura di attacco Una volta ottenuto l'accesso, l'attaccante intercetta e modifica una richiesta, aggiungendo un payload dannoso come:
    root@kitploit:~
    &enc=1&user=cisco&pwd=AAAA...AAAAZZZZ&sel_lang=EN  
    

Questo provoca un segmentation fault. Determinando la dimensione ottimale del buffer, gli attaccanti possono iniettare ed eseguire codice dannoso.

Exploit | Gadgets : Ropper

root@kitploit:~
ibc.so.0/ELF/ARM)> disasm_address 0x00034410
Instructions
============
0x00034410: pop {r0, pc}

(libc.so.0/ELF/ARM)> disasm_address 0x00041304
Instructions
============
0x00041304: mov r2, r0

(libc.so.0/ELF/ARM)> search %mov r2, r0%
[INFO] Searching for gadgets: %mov r2, r0%
[INFO] File: libc.so.0
0x00041304: mov r2, r0; mov r0, sp; blx r2;

Bibliografia

  1. MITRE CWE-120: Copia del buffer senza controllo della dimensione dell'input
    https://cwe.mitre.org/data/definitions/120.html

  2. MITRE CWE-787: Scrittura fuori dai limiti
    https://cwe.mitre.org/data/definitions/787.html

  3. OWASP Panoramica sul buffer overflow
    https://owasp.org/www-community/vulnerabilities/Buffer_Overflow

  4. "Buffer Overflow" su Microsoft Learn
    https://learn.microsoft.com/en-us/cpp/security/security-best-practices-for-c-cpp

  5. CERT Standard di codifica sicura - STR31-C
    https://wiki.sei.cmu.edu/confluence/display/c/STR31-C.+Guarantee+that+storage+for+strings+has+sufficient+space+for+character+data+and+the+null+terminator

  6. Sfruttamento di CVE-2019-1663 - Write Up di Quentin Kaiser
    https://quentinkaiser.be/exploitdev/2019/08/30/exploit-cve-2019-1663

Scarica lo strumento