ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎ инТСнСрство Π½Π° домашСн Ρ€ΡƒΡ‚Π΅Ρ€ с binwalk. Π˜ΠΌΠ°Ρ‚Π΅ Π»ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ Π½Π° софтуСра Π½Π° вашия Ρ€ΡƒΡ‚Π΅Ρ€?

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎ инТСнСрство Π½Π° домашСн Ρ€ΡƒΡ‚Π΅Ρ€ с binwalk. Π˜ΠΌΠ°Ρ‚Π΅ Π»ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ Π½Π° софтуСра Π½Π° вашия Ρ€ΡƒΡ‚Π΅Ρ€?

ΠŸΡ€Π΅Π΄ΠΈ няколко Π΄Π½ΠΈ Ρ€Π΅ΡˆΠΈΡ… Π΄Π° направя ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ инТСнСрство Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π° Π½Π° моя Ρ€ΡƒΡ‚Π΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° binwalk.

ΠšΡƒΠΏΠΈΡ… си Π”ΠΎΠΌΠ°ΡˆΠ΅Π½ Ρ€ΡƒΡ‚Π΅Ρ€ TP-Link Archer C7. НС Π΅ Π½Π°ΠΉ-добрият Ρ€ΡƒΡ‚Π΅Ρ€, Π½ΠΎ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ Π·Π° ΠΌΠΎΠΈΡ‚Π΅ Π½ΡƒΠΆΠ΄ΠΈ.

ВсСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ купя Π½ΠΎΠ² Ρ€ΡƒΡ‚Π΅Ρ€, инсталирам OpenWRT. Π—Π° ΠΊΠ°ΠΊΠ²ΠΎ? По ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π΅ сС интСрСсуват ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° своитС Ρ€ΡƒΡ‚Π΅Ρ€ΠΈ ΠΈ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΡΠΎΡ„Ρ‚ΡƒΠ΅Ρ€ΡŠΡ‚ остарява, появяват сС уязвимости ΠΈ Ρ‚.Π½., ΠΊΠ°Ρ‚ΠΎ цяло Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅. Π—Π°Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΌ Π΄ΠΎΠ±Ρ€Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ OpenWRT.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ… OpenWRT, Π°Π· ΡΡŠΡ‰ΠΎ ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΎ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π° ΠΏΠΎΠ΄ моя Π½ΠΎΠ² Archer C7 ΠΎΡ‚ официалния сайт ΠΈ Ρ€Π΅ΡˆΠΈΡ… Π΄Π° Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌ. Чисто Π·Π° Π·Π°Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° binwalk.

Какво С binwalk?

Binwalk Π΅ инструмСнт с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ инТСнСрство ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° изобраТСния Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π°.

БъздадСн ΠΏΡ€Π΅Π· 2010 Π³. ΠΎΡ‚ ΠšΡ€Π΅ΠΉΠ³ Π₯Π΅Ρ„Π½ΡŠΡ€, binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° сканира изобраТСния Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π° ΠΈ Π΄Π° Π½Π°ΠΌΠΈΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π° изобраТСния Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма, изпълним ΠΊΠΎΠ΄, компрСсирани Π°Ρ€Ρ…ΠΈΠ²ΠΈ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ядра, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ JPEG ΠΈ PDF ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ binwalk Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ инТСнСрство Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π°, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π’ΡŠΡ€ΡΠ΅Ρ‚Π΅ уязвимости Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ·Π²Π»ΠΈΡ‡Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Ρ‚ΡŠΡ€ΡΠ΅Ρ‚Π΅ Π·Π°Π΄Π½ΠΈ Π²Ρ€Π°Ρ‚ΠΈΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ сСртификати. МоТС ΡΡŠΡ‰ΠΎ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ opcodes Π·Π° ΠΊΡƒΠΏ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ процСсори.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚Π΅ изобраТСния Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма, Π·Π° Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с ΠΏΠ°Ρ€ΠΎΠ»Π° (passwd, shadow ΠΈ Ρ‚.Π½.) ΠΈ Π΄Π° сС ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±ΠΈΠ΅Ρ‚Π΅ Ρ…Π΅ΡˆΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ„Π°ΠΉΠ»Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ· Π½Π° Снтропията Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ компрСсирани Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅. Всичко Ρ‚ΠΎΠ²Π°, Π±Π΅Π· Π΄Π° сС Π½Π°Π»Π°Π³Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ изходния ΠΊΠΎΠ΄.

ΠšΠ°Ρ‚ΠΎ цяло всичко, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅, Π΅ Ρ‚Π°ΠΌ πŸ™‚

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ binwalk?

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° характСристика Π½Π° binwalk Π΅ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ сканиранС Π½Π° подписи. Binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° сканира ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π° Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми.

Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ file?

file /bin/bash
/bin/bash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=12f73d7a8e226c663034529c8dd20efec22dde54, stripped

ΠžΡ‚Π±ΠΎΡ€ fileΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ‚ΡŠΡ€ΡΠΈ подписа (магичСско число), Π·Π° Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠ° Π½Π° Ρ„Π°ΠΉΠ»Π°. НапримСр, Π°ΠΊΠΎ Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π·Π°ΠΏΠΎΡ‡Π²Π° с послСдоватСлността ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A, тя Π·Π½Π°Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ PNG Ρ„Π°ΠΉΠ». На Wikipedia ΠΈΠΌΠ° списък с ΠΎΠ±Ρ‰ΠΈ сигнатури Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Binwalk Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½. Но вмСсто Π΄Π° Ρ‚ΡŠΡ€ΡΠΈ подписи само Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π°, binwalk Ρ‰Π΅ сканира цСлия Ρ„Π°ΠΉΠ». Π’ допълнСниС, binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈ file ΠΈ binwalk ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libmagic Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ подписи. Но binwalk освСн Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° списък с пСрсонализирани магичСски подписи Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° компрСсирани/компрСсирани Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π°, Linux ядра, Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‰ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми ΠΈ Ρ‚.Π½.

НСка сС забавлявамС?

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° binwalk

Binwalk сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π½Π° мноТСство ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Linux, OSX, FreeBSD ΠΈ Windows.

Π—Π° Π΄Π° инсталиратС Π½Π°ΠΉ-Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° binwalk, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ изтСглянС Π½Π° изходния ΠΊΠΎΠ΄ ΠΈ слСдвай инструкции Π·Π° инсталация ΠΈΠ»ΠΈ Π±ΡŠΡ€Π·ΠΎ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠ΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π½Π° уСбсайта Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Binwalk ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ:

$ binwalk

Binwalk v2.2.0
Craig Heffner, ReFirmLabs
https://github.com/ReFirmLabs/binwalk

Usage: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] ...

Signature Scan Options:
    -B, --signature              Scan target file(s) for common file signatures
    -R, --raw=<str>              Scan target file(s) for the specified sequence of bytes
    -A, --opcodes                Scan target file(s) for common executable opcode signatures
    -m, --magic=<file>           Specify a custom magic file to use
    -b, --dumb                   Disable smart signature keywords
    -I, --invalid                Show results marked as invalid
    -x, --exclude=<str>          Exclude results that match <str>
    -y, --include=<str>          Only show results that match <str>

Extraction Options:
    -e, --extract                Automatically extract known file types
    -D, --dd=<type:ext:cmd>      Extract <type> signatures, give the files an extension of <ext>, and execute <cmd>
    -M, --matryoshka             Recursively scan extracted files
    -d, --depth=<int>            Limit matryoshka recursion depth (default: 8 levels deep)
    -C, --directory=<str>        Extract files/folders to a custom directory (default: current working directory)
    -j, --size=<int>             Limit the size of each extracted file
    -n, --count=<int>            Limit the number of extracted files
    -r, --rm                     Delete carved files after extraction
    -z, --carve                  Carve data from files, but don't execute extraction utilities
    -V, --subdirs                Extract into sub-directories named by the offset

Entropy Options:
    -E, --entropy                Calculate file entropy
    -F, --fast                   Use faster, but less detailed, entropy analysis
    -J, --save                   Save plot as a PNG
    -Q, --nlegend                Omit the legend from the entropy plot graph
    -N, --nplot                  Do not generate an entropy plot graph
    -H, --high=<float>           Set the rising edge entropy trigger threshold (default: 0.95)
    -L, --low=<float>            Set the falling edge entropy trigger threshold (default: 0.85)

Binary Diffing Options:
    -W, --hexdump                Perform a hexdump / diff of a file or files
    -G, --green                  Only show lines containing bytes that are the same among all files
    -i, --red                    Only show lines containing bytes that are different among all files
    -U, --blue                   Only show lines containing bytes that are different among some files
    -u, --similar                Only display lines that are the same between all files
    -w, --terse                  Diff all files, but only display a hex dump of the first file

Raw Compression Options:
    -X, --deflate                Scan for raw deflate compression streams
    -Z, --lzma                   Scan for raw LZMA compression streams
    -P, --partial                Perform a superficial, but faster, scan
    -S, --stop                   Stop after the first result

General Options:
    -l, --length=<int>           Number of bytes to scan
    -o, --offset=<int>           Start scan at this file offset
    -O, --base=<int>             Add a base address to all printed offsets
    -K, --block=<int>            Set file block size
    -g, --swap=<int>             Reverse every n bytes before scanning
    -f, --log=<file>             Log results to file
    -c, --csv                    Log results to file in CSV format
    -t, --term                   Format output to fit the terminal window
    -q, --quiet                  Suppress output to stdout
    -v, --verbose                Enable verbose output
    -h, --help                   Show help output
    -a, --finclude=<str>         Only scan files whose names match this regex
    -p, --fexclude=<str>         Do not scan files whose names match this regex
    -s, --status=<int>           Enable the status server on the specified port

Π‘ΠΊΠ°Π½ΠΈΡ€Π°Π½Π΅ Π½Π° изобраТСния

НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ подписи Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ сайта TP-Link).

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° binwalk с опцията --signature:

$ binwalk --signature --term archer-c7.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
------------------------------------------------------------------------------------------
21876         0x5574          U-Boot version string, "U-Boot 1.1.4-g4480d5f9-dirty (May
                              20 2019 - 18:45:16)"
21940         0x55B4          CRC32 polynomial table, big endian
23232         0x5AC0          uImage header, header size: 64 bytes, header CRC:
                              0x386C2BD5, created: 2019-05-20 10:45:17, image size:
                              41162 bytes, Data Address: 0x80010000, Entry Point:
                              0x80010000, data CRC: 0xC9CD1E38, OS: Linux, CPU: MIPS,
                              image type: Firmware Image, compression type: lzma, image
                              name: "u-boot image"
23296         0x5B00          LZMA compressed data, properties: 0x5D, dictionary size:
                              8388608 bytes, uncompressed size: 97476 bytes
64968         0xFDC8          XML document, version: "1.0"
78448         0x13270         uImage header, header size: 64 bytes, header CRC:
                              0x78A267FF, created: 2019-07-26 07:46:14, image size:
                              1088500 bytes, Data Address: 0x80060000, Entry Point:
                              0x80060000, data CRC: 0xBB9D4F94, OS: Linux, CPU: MIPS,
                              image type: Multi-File Image, compression type: lzma,
                              image name: "MIPS OpenWrt Linux-3.3.8"
78520         0x132B8         LZMA compressed data, properties: 0x6D, dictionary size:
                              8388608 bytes, uncompressed size: 3164228 bytes
1167013       0x11CEA5        Squashfs filesystem, little endian, version 4.0,
                              compression:xz, size: 14388306 bytes, 2541 inodes,
                              blocksize: 65536 bytes, created: 2019-07-26 07:51:38
15555328      0xED5B00        gzip compressed data, from Unix, last modified: 2019-07-26
                              07:51:41

Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ информация Π·Π° Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

ИзползванС Π½Π° изобраТСния ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈΡ†Π° ΠΊΠ°Ρ‚ΠΎ Π±ΡƒΡƒΡ‚Π»ΠΎΡƒΠ΄ΡŠΡ€ (Π·Π°Π³Π»Π°Π²ΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² 0x5AC0 ΠΈ компрСсирано ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΡƒΡƒΡ‚Π»ΠΎΡƒΠ΄ΡŠΡ€Π° Π² 0x5B00). Π’ΡŠΠ· основа Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° uImage ΠΏΡ€ΠΈ 0x13270 Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° процСсора Π΅ MIPS, Π° ядрото Π½Π° Linux Π΅ вСрсия 3.3.8. И въз основа Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ Π² 0x11CEA5, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎΠ²Π° rootfs Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма squashfs.

НСка сСга ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ Π±ΡƒΡƒΡ‚Π»ΠΎΡƒΠ΄ΡŠΡ€Π° (U-Boot) с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° dd:

$ dd if=archer-c7.bin of=u-boot.bin.lzma bs=1 skip=23296 count=41162
41162+0 records in
41162+0 records out
41162 bytes (41 kB, 40 KiB) copied, 0,0939608 s, 438 kB/s

Въй ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ компрСсирано с LZMA, трябва Π΄Π° Π³ΠΎ дСкомпрСсирамС:

$ unlzma u-boot.bin.lzma

Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° U-Boot:

$ ls -l u-boot.bin
-rw-rw-r-- 1 sprado sprado 97476 Fev  5 08:48 u-boot.bin

Какво Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ стойността ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° bootargs?

$ strings u-boot.bin | grep bootargs
bootargs
bootargs=console=ttyS0,115200 board=AP152 rootfstype=squashfs init=/etc/preinit mtdparts=spi0.0:128k(factory-uboot),192k(u-boot),64k(ART),1536k(uImage),14464k@0x1e0000(rootfs) mem=128M

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата Π½Π° U-Boot bootargs ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ към ядрото Π½Π° Linux. И ΠΎΡ‚ Π³ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° Ρ„Π»Π°Ρˆ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° устройството.

Какво Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ядрото Π½Π° Linux?

$ dd if=archer-c7.bin of=uImage bs=1 skip=78448 count=1088572
1088572+0 records in
1088572+0 records out
1088572 bytes (1,1 MB, 1,0 MiB) copied, 1,68628 s, 646 kB/s

МоТСм Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΄Π°Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° file:

$ file uImage
uImage: u-boot legacy uImage, MIPS OpenWrt Linux-3.3.8, Linux/MIPS, Multi-File Image (lzma), 1088500 bytes, Fri Jul 26 07:46:14 2019, Load Address: 0x80060000, Entry Point: 0x80060000, Header CRC: 0x78A267FF, Data CRC: 0xBB9D4F94

Ѐайловият Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ uImage Π΅ основно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ядрото Π½Π° Linux с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Ρ…Π΅Π΄ΡŠΡ€. НСка ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ΠΌ Ρ‚Π°Π·ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠ°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ядрото Π½Π° Linux:

$ dd if=uImage of=Image.lzma bs=1 skip=72
1088500+0 records in
1088500+0 records out
1088500 bytes (1,1 MB, 1,0 MiB) copied, 1,65603 s, 657 kB/s

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ компрСсирано, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ΠΊΠ° Π³ΠΎ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°ΠΌΠ΅:

$ unlzma Image.lzma

Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ядрото Π½Π° Linux:

$ ls -la Image
-rw-rw-r-- 1 sprado sprado 3164228 Fev  5 10:51 Image

Какво ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ с ΠΎΠ±Ρ€Π°Π·Π° Π½Π° ядрото? МоТСм Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ Π² Π½ΠΈΠ·ΠΎΠ²Π΅Ρ‚Π΅ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ вСрсията Π½Π° ядрото Π½Π° Linux ΠΈ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π·Π° срСдата, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ядрото:

$ strings Image | grep "Linux version"
Linux version 3.3.8 (leo@leo-MS-7529) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Mon May 20 18:53:02 CST 2019

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€ΡŠΡ‚ бСшС пуснат ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° (2019), ΠΊΠΎΠ³Π°Ρ‚ΠΎ пиша Ρ‚Π°Π·ΠΈ статия, Ρ‚ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стара вСрсия Π½Π° ядрото Π½Π° Linux (3.3.8), ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΡ€Π΅Π· 2012 Π³., ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΎ с ΠΌΠ½ΠΎΠ³ΠΎ стара вСрсия Π½Π° GCC (4.6) ΡΡŠΡ‰ΠΎ ΠΎΡ‚ 2012 Π³.!
ВсС ΠΎΡ‰Π΅ Π»ΠΈ сС довСряватС Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ Ρ€ΡƒΡ‚Π΅Ρ€ΠΈ Π² офиса ΠΈ Ρƒ Π΄ΠΎΠΌΠ°?

Π‘ опция --opcodes ΠΌΠΎΠΆΠ΅ΠΌ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ binwalk, Π·Π° Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ машинни инструкции ΠΈ Π΄Π° опрСдСлямС процСсорната Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ:

$ binwalk --opcodes Image
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
2400          0x960           MIPS instructions, function epilogue
2572          0xA0C           MIPS instructions, function epilogue
2828          0xB0C           MIPS instructions, function epilogue

Какво Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° основната Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма? ВмСсто Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ€ΡŠΡ‡Π½ΠΎ, Π½Π΅ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ опцията binwalk --extract:

$ binwalk --extract --quiet archer-c7.bin

Цялата основна Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма Ρ‰Π΅ бъдС ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π° Π² поддирСктория:

$ cd _archer-c7.bin.extracted/squashfs-root/

$ ls
bin  dev  etc  lib  mnt  overlay  proc  rom  root  sbin  sys  tmp  usr  var  www

$ cat etc/banner
     MM           NM                    MMMMMMM          M       M
   $MMMMM        MMMMM                MMMMMMMMMMM      MMM     MMM
  MMMMMMMM     MM MMMMM.              MMMMM:MMMMMM:   MMMM   MMMMM
MMMM= MMMMMM  MMM   MMMM       MMMMM   MMMM  MMMMMM   MMMM  MMMMM'
MMMM=  MMMMM MMMM    MM       MMMMM    MMMM    MMMM   MMMMNMMMMM
MMMM=   MMMM  MMMMM          MMMMM     MMMM    MMMM   MMMMMMMM
MMMM=   MMMM   MMMMMM       MMMMM      MMMM    MMMM   MMMMMMMMM
MMMM=   MMMM     MMMMM,    NMMMMMMMM   MMMM    MMMM   MMMMMMMMMMM
MMMM=   MMMM      MMMMMM   MMMMMMMM    MMMM    MMMM   MMMM  MMMMMM
MMMM=   MMMM   MM    MMMM    MMMM      MMMM    MMMM   MMMM    MMMM
MMMM$ ,MMMMM  MMMMM  MMMM    MMM       MMMM   MMMMM   MMMM    MMMM
  MMMMMMM:      MMMMMMM     M         MMMMMMMMMMMM  MMMMMMM MMMMMMM
    MMMMMM       MMMMN     M           MMMMMMMMM      MMMM    MMMM
     MMMM          M                    MMMMMMM        M       M
       M
 ---------------------------------------------------------------
   For those about to rock... (%C, %R)
 ---------------------------------------------------------------

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π°.

МоТСм Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ…Π΅ΡˆΠΎΠ²Π΅ Π½Π° ΠΏΠ°Ρ€ΠΎΠ»ΠΈ, криптографски ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ сСртификати. МоТСм Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ уязвимости.

Π‘ ΡƒΠ°Ρƒ ΠΈ chroot ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΡ€ΠΈ Π΄Π° стартирамС (Π΅ΠΌΡƒΠ»ΠΈΡ€Π°ΠΌΠ΅) изпълним Ρ„Π°ΠΉΠ» ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

$ ls
bin  dev  etc  lib  mnt  overlay  proc  rom  root  sbin  sys  tmp  usr  var  www

$ cp /usr/bin/qemu-mips-static .

$ sudo chroot . ./qemu-mips-static bin/busybox
BusyBox v1.19.4 (2019-05-20 18:13:49 CST) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: busybox --list[-full]
   or: function [arguments]...

    BusyBox is a multi-call binary that combines many common Unix
    utilities into a single executable.  Most people will create a
    link to busybox for each function they wish to use and BusyBox
    will act like whatever it was invoked as.

Currently defined functions:
    [, [[, addgroup, adduser, arping, ash, awk, basename, cat, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, crontab, cut, date, dd, delgroup, deluser, dirname, dmesg, echo, egrep, env, expr, false,
    fgrep, find, free, fsync, grep, gunzip, gzip, halt, head, hexdump, hostid, id, ifconfig, init, insmod, kill, killall, klogd, ln, lock, logger, ls, lsmod, mac_addr, md5sum, mkdir, mkfifo, mknod, mktemp,
    mount, mv, nice, passwd, pgrep, pidof, ping, ping6, pivot_root, poweroff, printf, ps, pwd, readlink, reboot, reset, rm, rmdir, rmmod, route, sed, seq, sh, sleep, sort, start-stop-daemon, strings,
    switch_root, sync, sysctl, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, udhcpc, umount, uname, uniq, uptime, vconfig, vi, watchdog, wc, wget, which, xargs, yes, zcat

Π‘Ρ‚Ρ€Π°Ρ…ΠΎΡ‚Π΅Π½! Но ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ вСрсията Π½Π° BusyBox Π΅ 1.19.4. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ стара вСрсия Π½Π° BusyBoxΠΈΠ·Π΄Π°Π΄Π΅Π½ ΠΏΡ€Π΅Π· Π°ΠΏΡ€ΠΈΠ» 2012 Π³.

Π’Π°ΠΊΠ° Ρ‡Π΅ TP-Link пуска ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π° ΠΏΡ€Π΅Π· 2019 Π³., ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ софтуСр (GCC инструмСнтална Π²Π΅Ρ€ΠΈΠ³Π°, ядро, BusyBox ΠΈ Ρ‚.Π½.) ΠΎΡ‚ 2012 Π³.!

Π‘Π΅Π³Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ Π»ΠΈ Π·Π°Ρ‰ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ инсталирам OpenWRT Π½Π° ΠΌΠΎΠΈΡ‚Π΅ Ρ€ΡƒΡ‚Π΅Ρ€ΠΈ?

Π’ΠΎΠ²Π° Π½Π΅ Π΅ всичко

Binwalk ΠΌΠΎΠΆΠ΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π΅Π½Ρ‚Ρ€ΠΎΠΏΠΈΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·, Π΄Π° ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π° Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π΅Π½Ρ‚Ρ€ΠΎΠΏΠΈΠΉΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π΅Π½Ρ‚Ρ€ΠΎΠΏΠΈΠΉΠ½ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. ОбикновСно сС наблюдава ΠΏΠΎΠ²Π΅Ρ‡Π΅ Снтропия, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅Ρ‚Π΅ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ са ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½, компрСсиран ΠΈΠ»ΠΈ обфусциран Ρ„Π°ΠΉΠ». Hardcore ΠΊΠ»ΡŽΡ‡ Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅? Π—Π°Ρ‰ΠΎ Π½Π΅.

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎ инТСнСрство Π½Π° домашСн Ρ€ΡƒΡ‚Π΅Ρ€ с binwalk. Π˜ΠΌΠ°Ρ‚Π΅ Π»ΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ Π½Π° софтуСра Π½Π° вашия Ρ€ΡƒΡ‚Π΅Ρ€?

МоТСм Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° --raw Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° пСрсонализирана послСдоватСлност ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ --hexdump Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΡˆΠ΅ΡΡ‚Π½Π°Π΄Π΅ΡΠ΅Ρ‚ΠΈΡ‡Π΅Π½ дъмп, ΠΊΠΎΠΉΡ‚ΠΎ сравнява Π΄Π²Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ…ΠΎΠ΄Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.

ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ подписи ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ към binwalk ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· пСрсонализиран Ρ„Π°ΠΉΠ» Π·Π° подпис, посочСн Π² командния Ρ€Π΅Π΄ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° --magic, ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ към дирСкторията $ HOME / .config / binwalk / magic.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ информация Π·Π° binwalk Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π° докумСнтация.

Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ binwalk

Π’Π°ΠΌ API binwalk Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ ΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ» Π½Π° Python, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ всСки скрипт Π½Π° Python Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° сканиранС Π½Π° binwalk, Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ binwalk ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΡ‡Ρ‚ΠΈ напълно Π΄ΡƒΠ±Π»ΠΈΡ€Π°Π½Π° само с Π΄Π²Π° Ρ€Π΅Π΄Π° ΠΊΠΎΠ΄ Π½Π° Python!

import binwalk
binwalk.scan()

Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° API Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π·Π° Python Π·Π° пСрсонализиранС ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° binwalk.

Π‘ΡŠΡ‰ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° IDA плъгин ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Π° вСрсия Binwalk Pro.

Π’Π°ΠΊΠ° Ρ‡Π΅ Π·Π°Ρ‰ΠΎ Π½Π΅ ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π° ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Π½Π΅ ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ binwalk? ΠžΠ±Π΅Ρ‰Π°Π²Π°ΠΌ, Ρ‡Π΅ Ρ‰Π΅ сС забавляватС ΠΌΠ½ΠΎΠ³ΠΎ πŸ™‚

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€