공격자는 피해자 시스템에 접근하는 것을 목적으로 스피어 피싱메일을 발송합니다.
이때, 파일 첨부를 하는 경우 보안솔루션 등 보호 메커니즘에 차단 될 수 있으므로, 방어책을 피하고자 악성 링크를 포함한 스피어피싱 이메일을 보낼 수 있습니다.
 
이 경우, 신뢰할 수 있는 출처로 가장하는 것과 같은 사회 공학적 기술이 포함될 수 있습니다.
특수 문자를 남용하여 합법적인 웹사이트를 모방하여 겉보기에 무해한 링크를 사용할 수 있습니다.
또한, URL은 정수 또는 16진수 기반 호스트 이름 형식 허용 및 "@" 기호 앞의 텍스트 자동 삭제와 같은
URL 스키마의 특이점을 이용하여 난독화될 수도 있습니다. 예) hxxp://google.com@ 2398801700
이를 "URL Obfuscation Through Schema Abuse"이라고 하겠습니다.
 
URL Obfuscation Through Schema Abuse
 
시작하려면, URL이 클릭될 때 브라우저에서 어떻게 구성되고 구문 분석되는지 이해하는 것이 도움이 됩니다.
RFC1738(https://www.rfc-editor.org/rfc/rfc1738 )은 URL의 구조를 문서화합니다.
섹션 3.1(일반 인터넷 체계 구문)에서 모든 URL의 기본 구조를 설명합니다.

<scheme>//<user>:<password>@<host>:<port>/<url-path>


섹션 3.3(HTTP)에서는 HTTP URL의 형식이 다음 구조를 따른다고 명시되어 있습니다.

http://<host>:<port>/<path>?<searchpart>


RFC는 구체적으로,
"사용자 이름이나 비밀번호는 허용되지 않습니다."라고 명시합니다. 사용자 이름은 "@" 기호 앞의 텍스트로 정의됩니다. 
 
때문에, 브라우저가 사용자 이름 섹션이 채워진 URL("@" 기호 앞의 모든 것)을 해석하면,
이를 버리고 "@" 기호 뒤에 요청을 서버로 보냅니다.
 
Alternative Hostname Formats
 
이 예에서 숫자 "2398801700"은 호스트로 처리됩니다.
그러나 서버 IP 주소가 정수로 표현되는 것은 매우 드뭅니다. 이것은 두 번째 수준의 난독화입니다.
IPv4 주소는 일반적인 표현으로, 점으로 구분된 4개의 10진수로 구성되며,
각 10진수는 IP 주소의 8비트를 나타냅니다.
 
예를 들어, IP 주소 142.250.207.36 는
2진수 10001110.11111010.11001111.00100100
10진수는 2398801700 이 됩니다.
 
예제)
the IP address(142.250.207.36/http://www.google.com)
can be represented as the binary number

o Decimal to Binary
 - 10001110.11111010.11001111.00100100
 - 10001110111110101100111100100100
o Binary to Decimal converter
 - 2398801700
o Decimal to IP Converter
 - 142.250.207.36

http://www.naver.com@2398801700
 
 
https://attack.mitre.org/techniques/T1566/002/ 
https://cloud.google.com/blog/topics/threat-intelligence/url-obfuscation-schema-abuse/?hl=en

반응형

Hashcat은,

아래와 같이 패스워드 복구 도구라고 설명하고 있지만,

Pentest과정에서 패스워드 등 탈취한 Hash 값을 Crack 하기 위해 대입공격을 시도하는 도구이다.

Linux, macOS, Windows에서 사용가능한 버전이 존재하며,

지원하는 알고리즘으로는 LM hash, MD4, MD5, SHA계열 등이 존재한다.
Hashcat is a password recovery tool.  Versions are available for Linux, macOS, and Windows. Examples of hashcat-supported hashing algorithms are LM hashes, MD4, MD5, SHA-family and Unix Crypt formats as well as algorithms used in MySQL and Cisco PIX.

Hashcat 사용법

hashcat은 --help 명령어를 통해 option별로 자세한 설명을 제공하고 있어,

사전에 학습할 필요없이 찾아보며 바로 사용이 가능했지만,

숙달되기 전까지 찾아보는데 시간이 다소 걸려 정리의 필요성을 느꼈다.
사용법을 확인하기 위해 help명령어를 입력하여 매뉴얼을 확인한다. 

MacBookPro-2 ~ % hashcat --help
hashcat (v6.2.5-532-gcd77e488d) starting in help mode
Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...

 
- [ Options ] -

 Options Short / Long           | Type | Description                                          | Example
================================+======+======================================================+=======================
 -m, --hash-type                | Num  | Hash-type, references below (otherwise autodetect)   | -m 1000
 -a, --attack-mode              | Num  | Attack-mode, see references below                    | -a 3
 -V, --version                  |      | Print version                                        |
 -h, --help                     |      | Print help                                           |
     --quiet                    |      | Suppress output                                      |
     --hex-charset              |      | Assume charset is given in hex                       |
     --hex-salt                 |      | Assume salt is given in hex                          |
     --hex-wordlist             |      | Assume words in wordlist are given in hex            |
     --force                    |      | Ignore warnings                                      |
     --deprecated-check-disable |      | Enable deprecated plugins                            |
     --status                   |      | Enable automatic update of the status screen         |
     --status-json              |      | Enable JSON format for status output                 |
     --status-timer             | Num  | Sets seconds between status screen updates to X      | --status-timer=1
     --stdin-timeout-abort      | Num  | Abort if there is no input from stdin for X seconds  | --stdin-timeout-abort=300
     --machine-readable         |      | Display the status view in a machine-readable format |
     --keep-guessing            |      | Keep guessing the hash after it has been cracked     |
     --self-test-disable        |      | Disable self-test functionality on startup           |
     --loopback                 |      | Add new plains to induct directory                   |
     --markov-hcstat2           | File | Specify hcstat2 file to use                          | --markov-hcstat2=my.hcstat2
     --markov-disable           |      | Disables markov-chains, emulates classic brute-force |
     --markov-classic           |      | Enables classic markov-chains, no per-position       |
     --markov-inverse           |      | Enables inverse markov-chains, no per-position       |
 -t, --markov-threshold         | Num  | Threshold X when to stop accepting new markov-chains | -t 50
     --runtime                  | Num  | Abort session after X seconds of runtime             | --runtime=10
     --session                  | Str  | Define specific session name                         | --session=mysession
     --restore                  |      | Restore session from --session                       |
     --restore-disable          |      | Do not write restore file                            |
     --restore-file-path        | File | Specific path to restore file                        | --restore-file-path=x.restore
 -o, --outfile                  | File | Define outfile for recovered hash                    | -o outfile.txt
     --outfile-format           | Str  | Outfile format to use, separated with commas         | --outfile-format=1,3
     --outfile-autohex-disable  |      | Disable the use of $HEX[] in output plains           |
     --outfile-check-timer      | Num  | Sets seconds between outfile checks to X             | --outfile-check=30
     --wordlist-autohex-disable |      | Disable the conversion of $HEX[] from the wordlist   |
 -p, --separator                | Char | Separator char for hashlists and outfile             | -p :
     --stdout                   |      | Do not crack a hash, instead print candidates only   |
     --show                     |      | Compare hashlist with potfile; show cracked hashes   |
     --left                     |      | Compare hashlist with potfile; show uncracked hashes |
     --username                 |      | Enable ignoring of usernames in hashfile             |
     --remove                   |      | Enable removal of hashes once they are cracked       |
     --remove-timer             | Num  | Update input hash file each X seconds                | --remove-timer=30
     --potfile-disable          |      | Do not write potfile                                 |
     --potfile-path             | File | Specific path to potfile                             | --potfile-path=my.pot
     --encoding-from            | Code | Force internal wordlist encoding from X              | --encoding-from=iso-8859-15
     --encoding-to              | Code | Force internal wordlist encoding to X                | --encoding-to=utf-32le
     --debug-mode               | Num  | Defines the debug mode (hybrid only by using rules)  | --debug-mode=4
     --debug-file               | File | Output file for debugging rules                      | --debug-file=good.log
     --induction-dir            | Dir  | Specify the induction directory to use for loopback  | --induction=inducts
     --outfile-check-dir        | Dir  | Specify the outfile directory to monitor for plains  | --outfile-check-dir=x
     --logfile-disable          |      | Disable the logfile                                  |
     --hccapx-message-pair      | Num  | Load only message pairs from hccapx matching X       | --hccapx-message-pair=2
     --nonce-error-corrections  | Num  | The BF size range to replace AP's nonce last bytes   | --nonce-error-corrections=16
     --keyboard-layout-mapping  | File | Keyboard layout mapping table for special hash-modes | --keyb=german.hckmap
     --truecrypt-keyfiles       | File | Keyfiles to use, separated with commas               | --truecrypt-keyf=x.png
     --veracrypt-keyfiles       | File | Keyfiles to use, separated with commas               | --veracrypt-keyf=x.txt
     --veracrypt-pim-start      | Num  | VeraCrypt personal iterations multiplier start       | --veracrypt-pim-start=450
     --veracrypt-pim-stop       | Num  | VeraCrypt personal iterations multiplier stop        | --veracrypt-pim-stop=500
 -b, --benchmark                |      | Run benchmark of selected hash-modes                 |
     --benchmark-all            |      | Run benchmark of all hash-modes (requires -b)        |
     --speed-only               |      | Return expected speed of the attack, then quit       |
     --progress-only            |      | Return ideal progress step size and time to process  |
 -c, --segment-size             | Num  | Sets size in MB to cache from the wordfile to X      | -c 32
     --bitmap-min               | Num  | Sets minimum bits allowed for bitmaps to X           | --bitmap-min=24
     --bitmap-max               | Num  | Sets maximum bits allowed for bitmaps to X           | --bitmap-max=24
     --cpu-affinity             | Str  | Locks to CPU devices, separated with commas          | --cpu-affinity=1,2,3
     --hook-threads             | Num  | Sets number of threads for a hook (per compute unit) | --hook-threads=8
     --hash-info                |      | Show information for each hash-mode                  |
     --example-hashes           |      | Alias of --hash-info                                 |
     --backend-ignore-cuda      |      | Do not try to open CUDA interface on startup         |
     --backend-ignore-hip       |      | Do not try to open HIP interface on startup          |
     --backend-ignore-metal     |      | Do not try to open Metal interface on startup        |
     --backend-ignore-opencl    |      | Do not try to open OpenCL interface on startup       |
 -I, --backend-info             |      | Show system/evironment/backend API info              | -I or -II
 -d, --backend-devices          | Str  | Backend devices to use, separated with commas        | -d 1
 -D, --opencl-device-types      | Str  | OpenCL device-types to use, separated with commas    | -D 1
 -O, --optimized-kernel-enable  |      | Enable optimized kernels (limits password length)    |
 -M, --multiply-accel-disable   |      | Disable multiply kernel-accel with processor count   |
 -w, --workload-profile         | Num  | Enable a specific workload profile, see pool below   | -w 3
 -n, --kernel-accel             | Num  | Manual workload tuning, set outerloop step size to X | -n 64
 -u, --kernel-loops             | Num  | Manual workload tuning, set innerloop step size to X | -u 256
 -T, --kernel-threads           | Num  | Manual workload tuning, set thread count to X        | -T 64
     --backend-vector-width     | Num  | Manually override backend vector-width to X          | --backend-vector=4
     --spin-damp                | Num  | Use CPU for device synchronization, in percent       | --spin-damp=10
     --hwmon-disable            |      | Disable temperature and fanspeed reads and triggers  |
     --hwmon-temp-abort         | Num  | Abort if temperature reaches X degrees Celsius       | --hwmon-temp-abort=100
     --scrypt-tmto              | Num  | Manually override TMTO value for scrypt to X         | --scrypt-tmto=3
 -s, --skip                     | Num  | Skip X words from the start                          | -s 1000000
 -l, --limit                    | Num  | Limit X words from the start + skipped words         | -l 1000000
     --keyspace                 |      | Show keyspace base:mod values and quit               |
 -j, --rule-left                | Rule | Single rule applied to each word from left wordlist  | -j 'c'
 -k, --rule-right               | Rule | Single rule applied to each word from right wordlist | -k '^-'
 -r, --rules-file               | File | Multiple rules applied to each word from wordlists   | -r rules/best64.rule
 -g, --generate-rules           | Num  | Generate X random rules                              | -g 10000
     --generate-rules-func-min  | Num  | Force min X functions per rule                       |
     --generate-rules-func-max  | Num  | Force max X functions per rule                       |
     --generate-rules-func-sel  | Str  | Pool of rule operators valid for random rule engine  | --generate-rules-func-sel=ioTlc
     --generate-rules-seed      | Num  | Force RNG seed set to X                              |
 -1, --custom-charset1          | CS   | User-defined charset ?1                              | -1 ?l?d?u
 -2, --custom-charset2          | CS   | User-defined charset ?2                              | -2 ?l?d?s
 -3, --custom-charset3          | CS   | User-defined charset ?3                              |
 -4, --custom-charset4          | CS   | User-defined charset ?4                              |
     --identify                 |      | Shows all supported algorithms for input hashes      | --identify my.hash
 -i, --increment                |      | Enable mask increment mode                           |
     --increment-min            | Num  | Start mask incrementing at X                         | --increment-min=4
     --increment-max            | Num  | Stop mask incrementing at X                          | --increment-max=8
 -S, --slow-candidates          |      | Enable slower (but advanced) candidate generators    |
     --brain-server             |      | Enable brain server                                  |
     --brain-server-timer       | Num  | Update the brain server dump each X seconds (min:60) | --brain-server-timer=300
 -z, --brain-client             |      | Enable brain client, activates -S                    |
     --brain-client-features    | Num  | Define brain client features, see below              | --brain-client-features=3
     --brain-host               | Str  | Brain server host (IP or domain)                     | --brain-host=127.0.0.1
     --brain-port               | Port | Brain server port                                    | --brain-port=13743
     --brain-password           | Str  | Brain server authentication password                 | --brain-password=bZfhCvGUSjRq
     --brain-session            | Hex  | Overrides automatically calculated brain session     | --brain-session=0x2ae611db
     --brain-session-whitelist  | Hex  | Allow given sessions only, separated with commas     | --brain-session-whitelist=0x2ae611db

 

 

Hashcat 명령어 사용

hashcat 명령어 입력시 필요한 argument는 아래와 같다. 많은 옵션들이 존재하지만 주요 옵션들에 대해서 정리해 보면,,

Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...
hashcat [옵션*] [crack 대상 hash] [hash crack에 사용할 사전파일, 마스크, 디렉토리]

Hashcat 옵션

1. Attack mode(-a)

- a 또는 --attack-mode : Hash crack을 진행할 공격 방법
   ex ) -a 0, -a 1, - a 3, 

# | Mode
 ===+======
  0 | Straight  //trying all words in a list; also called “straight” mode
  1 | Combination // concatenating words from multiple wordlists
  3 | Brute-force  // trying all characters from given charsets, per position
  6 | Hybrid Wordlist + Mask //6,7 : Hybrid Wordlist + Mask, Hybrid Mask + Wordlist : combining wordlists+masks and masks+wordlists
  7 | Hybrid Mask + Wordlist
  9 | Association

  - 0 : Straight 

사전 공격 또는 워드리스트 공격으로 제공한 사전 파일과 비교(-a 0)

  - 1 : Combination

두개의 사전을 결합하여 공격시도

사전 dict1.txt :
12345 
세상에 
테스트 통과

사전 dict2.txt :
alice
bob
cat
dog

./hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt
passalice 
passbob 
passcat 
passdog 
12345alice 
12345bob 
12345cat 
12345dog 
omgalice 
omgbob 
omgcat 
omgdog 
Testalice 
Testbob 
Testcat 
Testdog

 * ./hashcat -m 0 -a 1 hash.txt dict1.txt dict1.txt 와 같이 동일한 사전으로도 가능하다
  - 3 : Brute-force 

keyspace의 모든 조합을 적용하여 공격하거나, 특정 마스크*를 지정하여 무작위 대입공격을 진행
* 마스크에 관한 사항은, 하단에서 설명

 - 6,7 : Hybrid Wordlist + Mask, Hybrid Mask + Wordlist

사전단어와 무차별 공격(Brute-Force Attack) 또는 마스크로 생성된 단어를 합친 공격

-a 6 : example.dict ?d?d?d?d
password0000
password0001
password0002

-a 7 : ?d?d?d?d example.dict
0000password
0001password
0002password

 

1-1.  Built-in Charsets

brute force, Hybrid 등 attack mode에서 Mask를 적용이 가능하여 Mask에 관한 내용을 살펴본다.
무차별 대입 공격은 일반적으로 decrytion 된 패스워드 9자 이상부터는 hash를 crack 하는 것이 매우 많은 시간을 필요로 하거나, 불가능하기 때문에 crack 성공할 가능성이 제한되어 있지만,  사용하는 알고리즘과 hashcat에 사용 가능한 리소스(GPU 등)에 따라 달라질 수 있다. 이와 함께, decrytion 된 문자의 형태, 형식을 어느 정도 유추 할 수 있는 상황이라면, Mask를 사용하여 원하는 문자, 길이에 제한을 둠으로써 시도하는 키값을 줄여 효율적으로 공격이 가능하다.

- [ Built-in Charsets ] -

  ? | Charset
 ===+=========
  l | abcdefghijklmnopqrstuvwxyz [a-z]    // 소문자[a-z]
  u | ABCDEFGHIJKLMNOPQRSTUVWXYZ [A-Z]    // 대문자[A-Z]
  d | 0123456789                 [0-9]    // 숫자[0-9]
  h | 0123456789abcdef           [0-9a-f] // 숫자[0-9]+소문자[a-z]
  H | 0123456789ABCDEF           [0-9A-F] // 숫자[0-9]+대문자[A-Z]
  s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~   // 특수문자
  a | ?l?u?d?s                            // l+u+d+s = 소문자[a-z]+대문자[A-Z]+숫자[0-9]+특수문자
  b | 0x00 - 0xff

 

위의 규칙을 통해 소문자로만 공격을 시도할 것인지, 소문자와 숫자를 사용하거나 a와 같이 복합적으로 사용할 것인지를 지정할 수 있으며  추가적으로, 시도할 문자의 길이도 지정할 수 있다.
example)
  - 4자리 숫자 - ?d?d?d?d,
  - 8자리 무작위 글자 - ?a?a?a?a?a?a?a?a
 
이러한 경우는 자릿수가 고정되어, 8자리 무작위 글자(?a?a?a?a?a?a?a?a)의 경우 5자리, 6자리의 패스워드는 확인하지 않는다. 이때  -i 또는 ‐‐increment 옵션을 사용하는 경우 1자리부터 지정한 자릿수까지 순차적으로 진행한다.
 * 최소, 최대 범위 지정도 가능한데, -i --increment-min=3 --increment-max=6 와 같이 사용하여 3~6자리 문자로 지정가능하며, increment-max의 범위는 위에서 지정한 마스크(8자리) 범위 이상(9자리 등)으로는 설정하여도 동작하지 않는다.
 
예를 통해 실제로 사용 예를 살펴보면,
example) 비밀번호 *H4ck* 의 NTLM(-m 1000) 해시를 가져와서 무차별 대입 모드(-a 3)로 공격
    - hashcat -m 1000 42EF98F2E9B77304716D2AECA2F0BD96 -a3 '?a?a?a?a?a?a?a'
 

2. Hash modes(-m)

m 또는 --hash-type : Hash crack을 진행하고자 하는 대상 알고리즘
  ex )  -m 0, -m 100, -m 1000, -m 1410
   - 0 : MD5, 100 : SHA1, 1000 : NTLM, 1410 : SHA256($pass,$salt)
 
- [ Hash modes ] -

      # | Name                                                       | Category
  ======+============================================================+======================================
    900 | MD4                                                        | Raw Hash
      0 | MD5                                                        | Raw Hash
    100 | SHA1                                                       | Raw Hash
   1300 | SHA2-224                                                   | Raw Hash
   1400 | SHA2-256                                                   | Raw Hash
  10800 | SHA2-384                                                   | Raw Hash
   1700 | SHA2-512                                                   | Raw Hash
  17300 | SHA3-224                                                   | Raw Hash
  17400 | SHA3-256                                                   | Raw Hash
  17500 | SHA3-384                                                   | Raw Hash
  17600 | SHA3-512                                                   | Raw Hash
   6000 | RIPEMD-160                                                 | Raw Hash
    600 | BLAKE2b-512                                                | Raw Hash
  11700 | GOST R 34.11-2012 (Streebog) 256-bit, big-endian           | Raw Hash
  11800 | GOST R 34.11-2012 (Streebog) 512-bit, big-endian           | Raw Hash
   6900 | GOST R 34.11-94                                            | Raw Hash
  17010 | GPG (AES-128/AES-256 (SHA-1($pass)))                       | Raw Hash
   5100 | Half MD5                                                   | Raw Hash
  17700 | Keccak-224                                                 | Raw Hash
  17800 | Keccak-256                                                 | Raw Hash
  17900 | Keccak-384                                                 | Raw Hash
  18000 | Keccak-512                                                 | Raw Hash
   6100 | Whirlpool                                                  | Raw Hash
  10100 | SipHash                                                    | Raw Hash
     70 | md5(utf16le($pass))                                        | Raw Hash
    170 | sha1(utf16le($pass))                                       | Raw Hash
   1470 | sha256(utf16le($pass))                                     | Raw Hash
  10870 | sha384(utf16le($pass))                                     | Raw Hash
   1770 | sha512(utf16le($pass))                                     | Raw Hash
    610 | BLAKE2b-512($pass.$salt)                                   | Raw Hash salted and/or iterated
    620 | BLAKE2b-512($salt.$pass)                                   | Raw Hash salted and/or iterated
     10 | md5($pass.$salt)                                           | Raw Hash salted and/or iterated
     20 | md5($salt.$pass)                                           | Raw Hash salted and/or iterated
   3800 | md5($salt.$pass.$salt)                                     | Raw Hash salted and/or iterated
   3710 | md5($salt.md5($pass))                                      | Raw Hash salted and/or iterated
   4110 | md5($salt.md5($pass.$salt))                                | Raw Hash salted and/or iterated
   4010 | md5($salt.md5($salt.$pass))                                | Raw Hash salted and/or iterated
  21300 | md5($salt.sha1($salt.$pass))                               | Raw Hash salted and/or iterated
     40 | md5($salt.utf16le($pass))                                  | Raw Hash salted and/or iterated
   2600 | md5(md5($pass))                                            | Raw Hash salted and/or iterated
   3910 | md5(md5($pass).md5($salt))                                 | Raw Hash salted and/or iterated
   3500 | md5(md5(md5($pass)))                                       | Raw Hash salted and/or iterated
   4400 | md5(sha1($pass))                                           | Raw Hash salted and/or iterated
   4410 | md5(sha1($pass).$salt)                                     | Raw Hash salted and/or iterated
  20900 | md5(sha1($pass).md5($pass).sha1($pass))                    | Raw Hash salted and/or iterated
  21200 | md5(sha1($salt).md5($pass))                                | Raw Hash salted and/or iterated
   4300 | md5(strtoupper(md5($pass)))                                | Raw Hash salted and/or iterated
     30 | md5(utf16le($pass).$salt)                                  | Raw Hash salted and/or iterated
    110 | sha1($pass.$salt)                                          | Raw Hash salted and/or iterated
    120 | sha1($salt.$pass)                                          | Raw Hash salted and/or iterated
   4900 | sha1($salt.$pass.$salt)                                    | Raw Hash salted and/or iterated
   4520 | sha1($salt.sha1($pass))                                    | Raw Hash salted and/or iterated
  24300 | sha1($salt.sha1($pass.$salt))                              | Raw Hash salted and/or iterated
    140 | sha1($salt.utf16le($pass))                                 | Raw Hash salted and/or iterated
  19300 | sha1($salt1.$pass.$salt2)                                  | Raw Hash salted and/or iterated
  14400 | sha1(CX)                                                   | Raw Hash salted and/or iterated
   4700 | sha1(md5($pass))                                           | Raw Hash salted and/or iterated
   4710 | sha1(md5($pass).$salt)                                     | Raw Hash salted and/or iterated
  21100 | sha1(md5($pass.$salt))                                     | Raw Hash salted and/or iterated
  18500 | sha1(md5(md5($pass)))                                      | Raw Hash salted and/or iterated
   4500 | sha1(sha1($pass))                                          | Raw Hash salted and/or iterated
   4510 | sha1(sha1($pass).$salt)                                    | Raw Hash salted and/or iterated
   5000 | sha1(sha1($salt.$pass.$salt))                              | Raw Hash salted and/or iterated
    130 | sha1(utf16le($pass).$salt)                                 | Raw Hash salted and/or iterated
   1410 | sha256($pass.$salt)                                        | Raw Hash salted and/or iterated
   1420 | sha256($salt.$pass)                                        | Raw Hash salted and/or iterated
  22300 | sha256($salt.$pass.$salt)                                  | Raw Hash salted and/or iterated
  20720 | sha256($salt.sha256($pass))                                | Raw Hash salted and/or iterated
  21420 | sha256($salt.sha256_bin($pass))                            | Raw Hash salted and/or iterated
   1440 | sha256($salt.utf16le($pass))                               | Raw Hash salted and/or iterated
  20800 | sha256(md5($pass))                                         | Raw Hash salted and/or iterated
  20710 | sha256(sha256($pass).$salt)                                | Raw Hash salted and/or iterated
  21400 | sha256(sha256_bin($pass))                                  | Raw Hash salted and/or iterated
   1430 | sha256(utf16le($pass).$salt)                               | Raw Hash salted and/or iterated
  10810 | sha384($pass.$salt)                                        | Raw Hash salted and/or iterated
  10820 | sha384($salt.$pass)                                        | Raw Hash salted and/or iterated
  10840 | sha384($salt.utf16le($pass))                               | Raw Hash salted and/or iterated
  10830 | sha384(utf16le($pass).$salt)                               | Raw Hash salted and/or iterated
   1710 | sha512($pass.$salt)                                        | Raw Hash salted and/or iterated
   1720 | sha512($salt.$pass)                                        | Raw Hash salted and/or iterated
   1740 | sha512($salt.utf16le($pass))                               | Raw Hash salted and/or iterated
   1730 | sha512(utf16le($pass).$salt)                               | Raw Hash salted and/or iterated
     50 | HMAC-MD5 (key = $pass)                                     | Raw Hash authenticated
     60 | HMAC-MD5 (key = $salt)                                     | Raw Hash authenticated
    150 | HMAC-SHA1 (key = $pass)                                    | Raw Hash authenticated
    160 | HMAC-SHA1 (key = $salt)                                    | Raw Hash authenticated
   1450 | HMAC-SHA256 (key = $pass)                                  | Raw Hash authenticated
   1460 | HMAC-SHA256 (key = $salt)                                  | Raw Hash authenticated
   1750 | HMAC-SHA512 (key = $pass)                                  | Raw Hash authenticated
   1760 | HMAC-SHA512 (key = $salt)                                  | Raw Hash authenticated
  11750 | HMAC-Streebog-256 (key = $pass), big-endian                | Raw Hash authenticated
  11760 | HMAC-Streebog-256 (key = $salt), big-endian                | Raw Hash authenticated
  11850 | HMAC-Streebog-512 (key = $pass), big-endian                | Raw Hash authenticated
  11860 | HMAC-Streebog-512 (key = $salt), big-endian                | Raw Hash authenticated
  28700 | Amazon AWS4-HMAC-SHA256                                    | Raw Hash authenticated
  11500 | CRC32                                                      | Raw Checksum
  27900 | CRC32C                                                     | Raw Checksum
  28000 | CRC64Jones                                                 | Raw Checksum
  18700 | Java Object hashCode()                                     | Raw Checksum
  25700 | MurmurHash                                                 | Raw Checksum
  27800 | MurmurHash3                                                | Raw Checksum
  14100 | 3DES (PT = $salt, key = $pass)                             | Raw Cipher, Known-plaintext attack
  14000 | DES (PT = $salt, key = $pass)                              | Raw Cipher, Known-plaintext attack
  26401 | AES-128-ECB NOKDF (PT = $salt, key = $pass)                | Raw Cipher, Known-plaintext attack
  26402 | AES-192-ECB NOKDF (PT = $salt, key = $pass)                | Raw Cipher, Known-plaintext attack
  26403 | AES-256-ECB NOKDF (PT = $salt, key = $pass)                | Raw Cipher, Known-plaintext attack
  15400 | ChaCha20                                                   | Raw Cipher, Known-plaintext attack
  14500 | Linux Kernel Crypto API (2.4)                              | Raw Cipher, Known-plaintext attack
  14900 | Skip32 (PT = $salt, key = $pass)                           | Raw Cipher, Known-plaintext attack
  11900 | PBKDF2-HMAC-MD5                                            | Generic KDF
  12000 | PBKDF2-HMAC-SHA1                                           | Generic KDF
  10900 | PBKDF2-HMAC-SHA256                                         | Generic KDF
  12100 | PBKDF2-HMAC-SHA512                                         | Generic KDF
   8900 | scrypt                                                     | Generic KDF
    400 | phpass                                                     | Generic KDF
  16100 | TACACS+                                                    | Network Protocol
  11400 | SIP digest authentication (MD5)                            | Network Protocol
   5300 | IKE-PSK MD5                                                | Network Protocol
   5400 | IKE-PSK SHA1                                               | Network Protocol
  25100 | SNMPv3 HMAC-MD5-96                                         | Network Protocol
  25000 | SNMPv3 HMAC-MD5-96/HMAC-SHA1-96                            | Network Protocol
  25200 | SNMPv3 HMAC-SHA1-96                                        | Network Protocol
  26700 | SNMPv3 HMAC-SHA224-128                                     | Network Protocol
  26800 | SNMPv3 HMAC-SHA256-192                                     | Network Protocol
  26900 | SNMPv3 HMAC-SHA384-256                                     | Network Protocol
  27300 | SNMPv3 HMAC-SHA512-384                                     | Network Protocol
   2500 | WPA-EAPOL-PBKDF2                                           | Network Protocol
   2501 | WPA-EAPOL-PMK                                              | Network Protocol
  22000 | WPA-PBKDF2-PMKID+EAPOL                                     | Network Protocol
  22001 | WPA-PMK-PMKID+EAPOL                                        | Network Protocol
  16800 | WPA-PMKID-PBKDF2                                           | Network Protocol
  16801 | WPA-PMKID-PMK                                              | Network Protocol
   7300 | IPMI2 RAKP HMAC-SHA1                                       | Network Protocol
  10200 | CRAM-MD5                                                   | Network Protocol
  16500 | JWT (JSON Web Token)                                       | Network Protocol
  29200 | Radmin3                                                    | Network Protocol
  19600 | Kerberos 5, etype 17, TGS-REP                              | Network Protocol
  19800 | Kerberos 5, etype 17, Pre-Auth                             | Network Protocol
  28800 | Kerberos 5, etype 17, DB                                   | Network Protocol
  19700 | Kerberos 5, etype 18, TGS-REP                              | Network Protocol
  19900 | Kerberos 5, etype 18, Pre-Auth                             | Network Protocol
  28900 | Kerberos 5, etype 18, DB                                   | Network Protocol
   7500 | Kerberos 5, etype 23, AS-REQ Pre-Auth                      | Network Protocol
  13100 | Kerberos 5, etype 23, TGS-REP                              | Network Protocol
  18200 | Kerberos 5, etype 23, AS-REP                               | Network Protocol
   5500 | NetNTLMv1 / NetNTLMv1+ESS                                  | Network Protocol
  27000 | NetNTLMv1 / NetNTLMv1+ESS (NT)                             | Network Protocol
   5600 | NetNTLMv2                                                  | Network Protocol
  27100 | NetNTLMv2 (NT)                                             | Network Protocol
  29100 | Flask Session Cookie ($salt.$salt.$pass)                   | Network Protocol
   4800 | iSCSI CHAP authentication, MD5(CHAP)                       | Network Protocol
   8500 | RACF                                                       | Operating System
   6300 | AIX {smd5}                                                 | Operating System
   6700 | AIX {ssha1}                                                | Operating System
   6400 | AIX {ssha256}                                              | Operating System
   6500 | AIX {ssha512}                                              | Operating System
   3000 | LM                                                         | Operating System
  19000 | QNX /etc/shadow (MD5)                                      | Operating System
  19100 | QNX /etc/shadow (SHA256)                                   | Operating System
  19200 | QNX /etc/shadow (SHA512)                                   | Operating System
  15300 | DPAPI masterkey file v1 (context 1 and 2)                  | Operating System
  15310 | DPAPI masterkey file v1 (context 3)                        | Operating System
  15900 | DPAPI masterkey file v2 (context 1 and 2)                  | Operating System
  15910 | DPAPI masterkey file v2 (context 3)                        | Operating System
   7200 | GRUB 2                                                     | Operating System
  12800 | MS-AzureSync PBKDF2-HMAC-SHA256                            | Operating System
  12400 | BSDi Crypt, Extended DES                                   | Operating System
   1000 | NTLM                                                       | Operating System
   9900 | Radmin2                                                    | Operating System
   5800 | Samsung Android Password/PIN                               | Operating System
  28100 | Windows Hello PIN/Password                                 | Operating System
  13800 | Windows Phone 8+ PIN/password                              | Operating System
   2410 | Cisco-ASA MD5                                              | Operating System
   9200 | Cisco-IOS $8$ (PBKDF2-SHA256)                              | Operating System
   9300 | Cisco-IOS $9$ (scrypt)                                     | Operating System
   5700 | Cisco-IOS type 4 (SHA256)                                  | Operating System
   2400 | Cisco-PIX MD5                                              | Operating System
   8100 | Citrix NetScaler (SHA1)                                    | Operating System
  22200 | Citrix NetScaler (SHA512)                                  | Operating System
   1100 | Domain Cached Credentials (DCC), MS Cache                  | Operating System
   2100 | Domain Cached Credentials 2 (DCC2), MS Cache 2             | Operating System
   7000 | FortiGate (FortiOS)                                        | Operating System
  26300 | FortiGate256 (FortiOS256)                                  | Operating System
    125 | ArubaOS                                                    | Operating System
    501 | Juniper IVE                                                | Operating System
     22 | Juniper NetScreen/SSG (ScreenOS)                           | Operating System
  15100 | Juniper/NetBSD sha1crypt                                   | Operating System
  26500 | iPhone passcode (UID key + System Keybag)                  | Operating System
    122 | macOS v10.4, macOS v10.5, macOS v10.6                      | Operating System
   1722 | macOS v10.7                                                | Operating System
   7100 | macOS v10.8+ (PBKDF2-SHA512)                               | Operating System
   3200 | bcrypt $2*$, Blowfish (Unix)                               | Operating System
    500 | md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)                  | Operating System
   1500 | descrypt, DES (Unix), Traditional DES                      | Operating System
  29000 | sha1($salt.sha1(utf16le($username).':'.utf16le($pass)))    | Operating System
   7400 | sha256crypt $5$, SHA256 (Unix)                             | Operating System
   1800 | sha512crypt $6$, SHA512 (Unix)                             | Operating System
  24600 | SQLCipher                                                  | Database Server
    131 | MSSQL (2000)                                               | Database Server
    132 | MSSQL (2005)                                               | Database Server
   1731 | MSSQL (2012, 2014)                                         | Database Server
  24100 | MongoDB ServerKey SCRAM-SHA-1                              | Database Server
  24200 | MongoDB ServerKey SCRAM-SHA-256                            | Database Server
     12 | PostgreSQL                                                 | Database Server
  11100 | PostgreSQL CRAM (MD5)                                      | Database Server
  28600 | PostgreSQL SCRAM-SHA-256                                   | Database Server
   3100 | Oracle H: Type (Oracle 7+)                                 | Database Server
    112 | Oracle S: Type (Oracle 11+)                                | Database Server
  12300 | Oracle T: Type (Oracle 12+)                                | Database Server
   7401 | MySQL $A$ (sha256crypt)                                    | Database Server
  11200 | MySQL CRAM (SHA1)                                          | Database Server
    200 | MySQL323                                                   | Database Server
    300 | MySQL4.1/MySQL5                                            | Database Server
   8000 | Sybase ASE                                                 | Database Server
   8300 | DNSSEC (NSEC3)                                             | FTP, HTTP, SMTP, LDAP Server
  25900 | KNX IP Secure - Device Authentication Code                 | FTP, HTTP, SMTP, LDAP Server
  16400 | CRAM-MD5 Dovecot                                           | FTP, HTTP, SMTP, LDAP Server
   1411 | SSHA-256(Base64), LDAP {SSHA256}                           | FTP, HTTP, SMTP, LDAP Server
   1711 | SSHA-512(Base64), LDAP {SSHA512}                           | FTP, HTTP, SMTP, LDAP Server
  24900 | Dahua Authentication MD5                                   | FTP, HTTP, SMTP, LDAP Server
  10901 | RedHat 389-DS LDAP (PBKDF2-HMAC-SHA256)                    | FTP, HTTP, SMTP, LDAP Server
  15000 | FileZilla Server >= 0.9.55                                 | FTP, HTTP, SMTP, LDAP Server
  12600 | ColdFusion 10+                                             | FTP, HTTP, SMTP, LDAP Server
   1600 | Apache $apr1$ MD5, md5apr1, MD5 (APR)                      | FTP, HTTP, SMTP, LDAP Server
    141 | Episerver 6.x < .NET 4                                     | FTP, HTTP, SMTP, LDAP Server
   1441 | Episerver 6.x >= .NET 4                                    | FTP, HTTP, SMTP, LDAP Server
   1421 | hMailServer                                                | FTP, HTTP, SMTP, LDAP Server
    101 | nsldap, SHA-1(Base64), Netscape LDAP SHA                   | FTP, HTTP, SMTP, LDAP Server
    111 | nsldaps, SSHA-1(Base64), Netscape LDAP SSHA                | FTP, HTTP, SMTP, LDAP Server
   7700 | SAP CODVN B (BCODE)                                        | Enterprise Application Software (EAS)
   7701 | SAP CODVN B (BCODE) from RFC_READ_TABLE                    | Enterprise Application Software (EAS)
   7800 | SAP CODVN F/G (PASSCODE)                                   | Enterprise Application Software (EAS)
   7801 | SAP CODVN F/G (PASSCODE) from RFC_READ_TABLE               | Enterprise Application Software (EAS)
  10300 | SAP CODVN H (PWDSALTEDHASH) iSSHA-1                        | Enterprise Application Software (EAS)
    133 | PeopleSoft                                                 | Enterprise Application Software (EAS)
  13500 | PeopleSoft PS_TOKEN                                        | Enterprise Application Software (EAS)
  21500 | SolarWinds Orion                                           | Enterprise Application Software (EAS)
  21501 | SolarWinds Orion v2                                        | Enterprise Application Software (EAS)
     24 | SolarWinds Serv-U                                          | Enterprise Application Software (EAS)
   8600 | Lotus Notes/Domino 5                                       | Enterprise Application Software (EAS)
   8700 | Lotus Notes/Domino 6                                       | Enterprise Application Software (EAS)
   9100 | Lotus Notes/Domino 8                                       | Enterprise Application Software (EAS)
  26200 | OpenEdge Progress Encode                                   | Enterprise Application Software (EAS)
  20600 | Oracle Transportation Management (SHA256)                  | Enterprise Application Software (EAS)
   4711 | Huawei sha1(md5($pass).$salt)                              | Enterprise Application Software (EAS)
  20711 | AuthMe sha256                                              | Enterprise Application Software (EAS)
  22400 | AES Crypt (SHA256)                                         | Full-Disk Encryption (FDE)
  27400 | VMware VMX (PBKDF2-HMAC-SHA1 + AES-256-CBC)                | Full-Disk Encryption (FDE)
  14600 | LUKS v1 (legacy)                                           | Full-Disk Encryption (FDE)
  29541 | LUKS v1 RIPEMD-160 + AES                                   | Full-Disk Encryption (FDE)
  29542 | LUKS v1 RIPEMD-160 + Serpent                               | Full-Disk Encryption (FDE)
  29543 | LUKS v1 RIPEMD-160 + Twofish                               | Full-Disk Encryption (FDE)
  29511 | LUKS v1 SHA-1 + AES                                        | Full-Disk Encryption (FDE)
  29512 | LUKS v1 SHA-1 + Serpent                                    | Full-Disk Encryption (FDE)
  29513 | LUKS v1 SHA-1 + Twofish                                    | Full-Disk Encryption (FDE)
  29521 | LUKS v1 SHA-256 + AES                                      | Full-Disk Encryption (FDE)
  29522 | LUKS v1 SHA-256 + Serpent                                  | Full-Disk Encryption (FDE)
  29523 | LUKS v1 SHA-256 + Twofish                                  | Full-Disk Encryption (FDE)
  29531 | LUKS v1 SHA-512 + AES                                      | Full-Disk Encryption (FDE)
  29532 | LUKS v1 SHA-512 + Serpent                                  | Full-Disk Encryption (FDE)
  29533 | LUKS v1 SHA-512 + Twofish                                  | Full-Disk Encryption (FDE)
  13711 | VeraCrypt RIPEMD160 + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)
  13712 | VeraCrypt RIPEMD160 + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)
  13713 | VeraCrypt RIPEMD160 + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)
  13741 | VeraCrypt RIPEMD160 + XTS 512 bit + boot-mode (legacy)     | Full-Disk Encryption (FDE)
  13742 | VeraCrypt RIPEMD160 + XTS 1024 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)
  13743 | VeraCrypt RIPEMD160 + XTS 1536 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)
  29411 | VeraCrypt RIPEMD160 + XTS 512 bit                          | Full-Disk Encryption (FDE)
  29412 | VeraCrypt RIPEMD160 + XTS 1024 bit                         | Full-Disk Encryption (FDE)
  29413 | VeraCrypt RIPEMD160 + XTS 1536 bit                         | Full-Disk Encryption (FDE)
  29441 | VeraCrypt RIPEMD160 + XTS 512 bit + boot-mode              | Full-Disk Encryption (FDE)
  29442 | VeraCrypt RIPEMD160 + XTS 1024 bit + boot-mode             | Full-Disk Encryption (FDE)
  29443 | VeraCrypt RIPEMD160 + XTS 1536 bit + boot-mode             | Full-Disk Encryption (FDE)
  13751 | VeraCrypt SHA256 + XTS 512 bit (legacy)                    | Full-Disk Encryption (FDE)
  13752 | VeraCrypt SHA256 + XTS 1024 bit (legacy)                   | Full-Disk Encryption (FDE)
  13753 | VeraCrypt SHA256 + XTS 1536 bit (legacy)                   | Full-Disk Encryption (FDE)
  13761 | VeraCrypt SHA256 + XTS 512 bit + boot-mode (legacy)        | Full-Disk Encryption (FDE)
  13762 | VeraCrypt SHA256 + XTS 1024 bit + boot-mode (legacy)       | Full-Disk Encryption (FDE)
  13763 | VeraCrypt SHA256 + XTS 1536 bit + boot-mode (legacy)       | Full-Disk Encryption (FDE)
  29451 | VeraCrypt SHA256 + XTS 512 bit                             | Full-Disk Encryption (FDE)
  29452 | VeraCrypt SHA256 + XTS 1024 bit                            | Full-Disk Encryption (FDE)
  29453 | VeraCrypt SHA256 + XTS 1536 bit                            | Full-Disk Encryption (FDE)
  29461 | VeraCrypt SHA256 + XTS 512 bit + boot-mode                 | Full-Disk Encryption (FDE)
  29462 | VeraCrypt SHA256 + XTS 1024 bit + boot-mode                | Full-Disk Encryption (FDE)
  29463 | VeraCrypt SHA256 + XTS 1536 bit + boot-mode                | Full-Disk Encryption (FDE)
  13721 | VeraCrypt SHA512 + XTS 512 bit (legacy)                    | Full-Disk Encryption (FDE)
  13722 | VeraCrypt SHA512 + XTS 1024 bit (legacy)                   | Full-Disk Encryption (FDE)
  13723 | VeraCrypt SHA512 + XTS 1536 bit (legacy)                   | Full-Disk Encryption (FDE)
  29421 | VeraCrypt SHA512 + XTS 512 bit                             | Full-Disk Encryption (FDE)
  29422 | VeraCrypt SHA512 + XTS 1024 bit                            | Full-Disk Encryption (FDE)
  29423 | VeraCrypt SHA512 + XTS 1536 bit                            | Full-Disk Encryption (FDE)
  13771 | VeraCrypt Streebog-512 + XTS 512 bit (legacy)              | Full-Disk Encryption (FDE)
  13772 | VeraCrypt Streebog-512 + XTS 1024 bit (legacy)             | Full-Disk Encryption (FDE)
  13773 | VeraCrypt Streebog-512 + XTS 1536 bit (legacy)             | Full-Disk Encryption (FDE)
  13781 | VeraCrypt Streebog-512 + XTS 512 bit + boot-mode (legacy)  | Full-Disk Encryption (FDE)
  13782 | VeraCrypt Streebog-512 + XTS 1024 bit + boot-mode (legacy) | Full-Disk Encryption (FDE)
  13783 | VeraCrypt Streebog-512 + XTS 1536 bit + boot-mode (legacy) | Full-Disk Encryption (FDE)
  29471 | VeraCrypt Streebog-512 + XTS 512 bit                       | Full-Disk Encryption (FDE)
  29472 | VeraCrypt Streebog-512 + XTS 1024 bit                      | Full-Disk Encryption (FDE)
  29473 | VeraCrypt Streebog-512 + XTS 1536 bit                      | Full-Disk Encryption (FDE)
  29481 | VeraCrypt Streebog-512 + XTS 512 bit + boot-mode           | Full-Disk Encryption (FDE)
  29482 | VeraCrypt Streebog-512 + XTS 1024 bit + boot-mode          | Full-Disk Encryption (FDE)
  29483 | VeraCrypt Streebog-512 + XTS 1536 bit + boot-mode          | Full-Disk Encryption (FDE)
  13731 | VeraCrypt Whirlpool + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)
  13732 | VeraCrypt Whirlpool + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)
  13733 | VeraCrypt Whirlpool + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)
  29431 | VeraCrypt Whirlpool + XTS 512 bit                          | Full-Disk Encryption (FDE)
  29432 | VeraCrypt Whirlpool + XTS 1024 bit                         | Full-Disk Encryption (FDE)
  29433 | VeraCrypt Whirlpool + XTS 1536 bit                         | Full-Disk Encryption (FDE)
  23900 | BestCrypt v3 Volume Encryption                             | Full-Disk Encryption (FDE)
  16700 | FileVault 2                                                | Full-Disk Encryption (FDE)
  27500 | VirtualBox (PBKDF2-HMAC-SHA256 & AES-128-XTS)              | Full-Disk Encryption (FDE)
  27600 | VirtualBox (PBKDF2-HMAC-SHA256 & AES-256-XTS)              | Full-Disk Encryption (FDE)
  20011 | DiskCryptor SHA512 + XTS 512 bit                           | Full-Disk Encryption (FDE)
  20012 | DiskCryptor SHA512 + XTS 1024 bit                          | Full-Disk Encryption (FDE)
  20013 | DiskCryptor SHA512 + XTS 1536 bit                          | Full-Disk Encryption (FDE)
  22100 | BitLocker                                                  | Full-Disk Encryption (FDE)
  12900 | Android FDE (Samsung DEK)                                  | Full-Disk Encryption (FDE)
   8800 | Android FDE <= 4.3                                         | Full-Disk Encryption (FDE)
  18300 | Apple File System (APFS)                                   | Full-Disk Encryption (FDE)
   6211 | TrueCrypt RIPEMD160 + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)
   6212 | TrueCrypt RIPEMD160 + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)
   6213 | TrueCrypt RIPEMD160 + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)
   6241 | TrueCrypt RIPEMD160 + XTS 512 bit + boot-mode (legacy)     | Full-Disk Encryption (FDE)
   6242 | TrueCrypt RIPEMD160 + XTS 1024 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)
   6243 | TrueCrypt RIPEMD160 + XTS 1536 bit + boot-mode (legacy)    | Full-Disk Encryption (FDE)
  29311 | TrueCrypt RIPEMD160 + XTS 512 bit                          | Full-Disk Encryption (FDE)
  29312 | TrueCrypt RIPEMD160 + XTS 1024 bit                         | Full-Disk Encryption (FDE)
  29313 | TrueCrypt RIPEMD160 + XTS 1536 bit                         | Full-Disk Encryption (FDE)
  29341 | TrueCrypt RIPEMD160 + XTS 512 bit + boot-mode              | Full-Disk Encryption (FDE)
  29342 | TrueCrypt RIPEMD160 + XTS 1024 bit + boot-mode             | Full-Disk Encryption (FDE)
  29343 | TrueCrypt RIPEMD160 + XTS 1536 bit + boot-mode             | Full-Disk Encryption (FDE)
   6221 | TrueCrypt SHA512 + XTS 512 bit (legacy)                    | Full-Disk Encryption (FDE)
   6222 | TrueCrypt SHA512 + XTS 1024 bit (legacy)                   | Full-Disk Encryption (FDE)
   6223 | TrueCrypt SHA512 + XTS 1536 bit (legacy)                   | Full-Disk Encryption (FDE)
  29321 | TrueCrypt SHA512 + XTS 512 bit                             | Full-Disk Encryption (FDE)
  29322 | TrueCrypt SHA512 + XTS 1024 bit                            | Full-Disk Encryption (FDE)
  29323 | TrueCrypt SHA512 + XTS 1536 bit                            | Full-Disk Encryption (FDE)
   6231 | TrueCrypt Whirlpool + XTS 512 bit (legacy)                 | Full-Disk Encryption (FDE)
   6232 | TrueCrypt Whirlpool + XTS 1024 bit (legacy)                | Full-Disk Encryption (FDE)
   6233 | TrueCrypt Whirlpool + XTS 1536 bit (legacy)                | Full-Disk Encryption (FDE)
  29331 | TrueCrypt Whirlpool + XTS 512 bit                          | Full-Disk Encryption (FDE)
  29332 | TrueCrypt Whirlpool + XTS 1024 bit                         | Full-Disk Encryption (FDE)
  29333 | TrueCrypt Whirlpool + XTS 1536 bit                         | Full-Disk Encryption (FDE)
  12200 | eCryptfs                                                   | Full-Disk Encryption (FDE)
  10400 | PDF 1.1 - 1.3 (Acrobat 2 - 4)                              | Document
  10410 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1                 | Document
  10420 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2                 | Document
  10500 | PDF 1.4 - 1.6 (Acrobat 5 - 8)                              | Document
  25400 | PDF 1.4 - 1.6 (Acrobat 5 - 8) - user and owner pass        | Document
  10600 | PDF 1.7 Level 3 (Acrobat 9)                                | Document
  10700 | PDF 1.7 Level 8 (Acrobat 10 - 11)                          | Document
   9400 | MS Office 2007                                             | Document
   9500 | MS Office 2010                                             | Document
   9600 | MS Office 2013                                             | Document
  25300 | MS Office 2016 - SheetProtection                           | Document
   9700 | MS Office <= 2003 $0/$1, MD5 + RC4                         | Document
   9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1            | Document
   9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2            | Document
   9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1              | Document
   9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2              | Document
   9800 | MS Office <= 2003 $3/$4, SHA1 + RC4                        | Document
  18400 | Open Document Format (ODF) 1.2 (SHA-256, AES)              | Document
  18600 | Open Document Format (ODF) 1.1 (SHA-1, Blowfish)           | Document
  16200 | Apple Secure Notes                                         | Document
  23300 | Apple iWork                                                | Document
   6600 | 1Password, agilekeychain                                   | Password Manager
   8200 | 1Password, cloudkeychain                                   | Password Manager
   9000 | Password Safe v2                                           | Password Manager
   5200 | Password Safe v3                                           | Password Manager
   6800 | LastPass + LastPass sniffed                                | Password Manager
  13400 | KeePass 1 (AES/Twofish) and KeePass 2 (AES)                | Password Manager
  23400 | Bitwarden                                                  | Password Manager
  16900 | Ansible Vault                                              | Password Manager
  26000 | Mozilla key3.db                                            | Password Manager
  26100 | Mozilla key4.db                                            | Password Manager
  23100 | Apple Keychain                                             | Password Manager
  11600 | 7-Zip                                                      | Archive
  12500 | RAR3-hp                                                    | Archive
  23800 | RAR3-p (Compressed)                                        | Archive
  23700 | RAR3-p (Uncompressed)                                      | Archive
  13000 | RAR5                                                       | Archive
  17220 | PKZIP (Compressed Multi-File)                              | Archive
  17200 | PKZIP (Compressed)                                         | Archive
  17225 | PKZIP (Mixed Multi-File)                                   | Archive
  17230 | PKZIP (Mixed Multi-File Checksum-Only)                     | Archive
  17210 | PKZIP (Uncompressed)                                       | Archive
  20500 | PKZIP Master Key                                           | Archive
  20510 | PKZIP Master Key (6 byte optimization)                     | Archive
  23001 | SecureZIP AES-128                                          | Archive
  23002 | SecureZIP AES-192                                          | Archive
  23003 | SecureZIP AES-256                                          | Archive
  13600 | WinZip                                                     | Archive
  18900 | Android Backup                                             | Archive
  24700 | Stuffit5                                                   | Archive
  13200 | AxCrypt 1                                                  | Archive
  13300 | AxCrypt 1 in-memory SHA1                                   | Archive
  23500 | AxCrypt 2 AES-128                                          | Archive
  23600 | AxCrypt 2 AES-256                                          | Archive
  14700 | iTunes backup < 10.0                                       | Archive
  14800 | iTunes backup >= 10.0                                      | Archive
   8400 | WBB3 (Woltlab Burning Board)                               | Forums, CMS, E-Commerce
   2612 | PHPS                                                       | Forums, CMS, E-Commerce
    121 | SMF (Simple Machines Forum) > v1.1                         | Forums, CMS, E-Commerce
   3711 | MediaWiki B type                                           | Forums, CMS, E-Commerce
   4521 | Redmine                                                    | Forums, CMS, E-Commerce
  24800 | Umbraco HMAC-SHA1                                          | Forums, CMS, E-Commerce
     11 | Joomla < 2.5.18                                            | Forums, CMS, E-Commerce
  13900 | OpenCart                                                   | Forums, CMS, E-Commerce
  11000 | PrestaShop                                                 | Forums, CMS, E-Commerce
  16000 | Tripcode                                                   | Forums, CMS, E-Commerce
   7900 | Drupal7                                                    | Forums, CMS, E-Commerce
   4522 | PunBB                                                      | Forums, CMS, E-Commerce
   2811 | MyBB 1.2+, IPB2+ (Invision Power Board)                    | Forums, CMS, E-Commerce
   2611 | vBulletin < v3.8.5                                         | Forums, CMS, E-Commerce
   2711 | vBulletin >= v3.8.5                                        | Forums, CMS, E-Commerce
  25600 | bcrypt(md5($pass)) / bcryptmd5                             | Forums, CMS, E-Commerce
  25800 | bcrypt(sha1($pass)) / bcryptsha1                           | Forums, CMS, E-Commerce
  28400 | bcrypt(sha512($pass)) / bcryptsha512                       | Forums, CMS, E-Commerce
     21 | osCommerce, xt:Commerce                                    | Forums, CMS, E-Commerce
  18100 | TOTP (HMAC-SHA1)                                           | One-Time Password
   2000 | STDOUT                                                     | Plaintext
  99999 | Plaintext                                                  | Plaintext
  21600 | Web2py pbkdf2-sha512                                       | Framework
  10000 | Django (PBKDF2-SHA256)                                     | Framework
    124 | Django (SHA-1)                                             | Framework
  12001 | Atlassian (PBKDF2-HMAC-SHA1)                               | Framework
  19500 | Ruby on Rails Restful-Authentication                       | Framework
  27200 | Ruby on Rails Restful Auth (one round, no sitekey)         | Framework
  20200 | Python passlib pbkdf2-sha512                               | Framework
  20300 | Python passlib pbkdf2-sha256                               | Framework
  20400 | Python passlib pbkdf2-sha1                                 | Framework
  24410 | PKCS#8 Private Keys (PBKDF2-HMAC-SHA1 + 3DES/AES)          | Private Key
  24420 | PKCS#8 Private Keys (PBKDF2-HMAC-SHA256 + 3DES/AES)        | Private Key
  15500 | JKS Java Key Store Private Keys (SHA1)                     | Private Key
  22911 | RSA/DSA/EC/OpenSSH Private Keys ($0$)                      | Private Key
  22921 | RSA/DSA/EC/OpenSSH Private Keys ($6$)                      | Private Key
  22931 | RSA/DSA/EC/OpenSSH Private Keys ($1, $3$)                  | Private Key
  22941 | RSA/DSA/EC/OpenSSH Private Keys ($4$)                      | Private Key
  22951 | RSA/DSA/EC/OpenSSH Private Keys ($5$)                      | Private Key
  23200 | XMPP SCRAM PBKDF2-SHA1                                     | Instant Messaging Service
  28300 | Teamspeak 3 (channel hash)                                 | Instant Messaging Service
  22600 | Telegram Desktop < v2.1.14 (PBKDF2-HMAC-SHA1)              | Instant Messaging Service
  24500 | Telegram Desktop >= v2.1.14 (PBKDF2-HMAC-SHA512)           | Instant Messaging Service
  22301 | Telegram Mobile App Passcode (SHA256)                      | Instant Messaging Service
     23 | Skype                                                      | Instant Messaging Service
  26600 | MetaMask Wallet                                            | Cryptocurrency Wallet
  21000 | BitShares v0.x - sha512(sha512_bin(pass))                  | Cryptocurrency Wallet
  28501 | Bitcoin WIF private key (P2PKH), compressed                | Cryptocurrency Wallet
  28502 | Bitcoin WIF private key (P2PKH), uncompressed              | Cryptocurrency Wallet
  28503 | Bitcoin WIF private key (P2WSH, Bech32), compressed        | Cryptocurrency Wallet
  28504 | Bitcoin WIF private key (P2WSH, Bech32), uncompressed      | Cryptocurrency Wallet
  11300 | Bitcoin/Litecoin wallet.dat                                | Cryptocurrency Wallet
  16600 | Electrum Wallet (Salt-Type 1-3)                            | Cryptocurrency Wallet
  21700 | Electrum Wallet (Salt-Type 4)                              | Cryptocurrency Wallet
  21800 | Electrum Wallet (Salt-Type 5)                              | Cryptocurrency Wallet
  12700 | Blockchain, My Wallet                                      | Cryptocurrency Wallet
  15200 | Blockchain, My Wallet, V2                                  | Cryptocurrency Wallet
  18800 | Blockchain, My Wallet, Second Password (SHA256)            | Cryptocurrency Wallet
  25500 | Stargazer Stellar Wallet XLM                               | Cryptocurrency Wallet
  16300 | Ethereum Pre-Sale Wallet, PBKDF2-HMAC-SHA256               | Cryptocurrency Wallet
  15600 | Ethereum Wallet, PBKDF2-HMAC-SHA256                        | Cryptocurrency Wallet
  15700 | Ethereum Wallet, SCRYPT                                    | Cryptocurrency Wallet
  22500 | MultiBit Classic .key (MD5)                                | Cryptocurrency Wallet
  27700 | MultiBit Classic .wallet (scrypt)                          | Cryptocurrency Wallet
  22700 | MultiBit HD (scrypt)                                       | Cryptocurrency Wallet
  28200 | Exodus Desktop Wallet (scrypt)                             | Cryptocurrency Wallet

3. Device Types(-d, -D)

crack에 사용할 자원 CPU, GPU 등 선택하여 공격을 진행할 수 있다.
  ex )  - d 1, -D 2
  -d : 사용할 백엔드 장치, 쉼표로 구분
  -D : 사용할 OpenCL 장치

- [ Options ] -

-d, --backend-devices      | Str  | Backend devices to use, separated with commas        | -d 1
-D, --opencl-device-types  | Str  | OpenCL device-types to use, separated with commas    | -D 1

- [ OpenCL Device Types ] -

  # | Device Type
 ===+=============
  1 | CPU
  2 | GPU
  3 | FPGA, DSP, Co-Processor

 
두 가지 방식이 존재하는데, 현재 운영 중인 시스템의 장치 목록 조회를 위해서는
-I 옵션을 통해서 확인이 가능하다.

- [ Options ] -
-I, --backend-info             |      | Show system/evironment/backend API info              | -I or -II

MacBookPro-2 ~ % hashcat -I
hashcat (v6.2.5-532-gcd77e488d) starting in backend information mode

Metal Info:
===========

Metal.Version.: 306.7.4

Backend Device ID #1 (Alias: #2)
  Type...........: GPU
  Vendor.ID......: 2
  Vendor.........: Apple
  Name...........: Apple M1 Max
  Processor(s)...: 24
  Clock..........: N/A
  Memory.Total...: 49152 MB (limited to 18432 MB allocatable in one block)
  Memory.Free....: 24512 MB
  Local.Memory...: 32 KB
  Phys.Location..: built-in
  Feature.Set....: macOS GPU Family 2 v1
  Registry.ID....: 2416
  Max.TX.Rate....: N/A
  GPU.Properties.: headless 0, low-power 0, removable 0

OpenCL Info:
============

OpenCL Platform ID #1
  Vendor..: Apple
  Name....: Apple
  Version.: OpenCL 1.2 (Apr 15 2023 03:24:33)

  Backend Device ID #2 (Alias: #1)
    Type...........: GPU
    Vendor.ID......: 2
    Vendor.........: Apple
    Name...........: Apple M1 Max
    Version........: OpenCL 1.2 
    Processor(s)...: 24
    Clock..........: 1000
    Memory.Total...: 49152 MB (limited to 4608 MB allocatable in one block)
    Memory.Free....: 24512 MB
    Local.Memory...: 32 KB
    OpenCL.Version.: OpenCL C 1.2 
    Driver.Version.: 1.2 1.0

 
 

도무지 무슨 말인지 명확히 이해가 가지는 않음, 이게 mac이라서 문제가 있는듯한데. 아래처럼 device#2가 Device#1의 별칭이라며 건너뛰기도 하였다. 아래는 테스트한 내용이니 단순 참고.
 
MacBookPro-2 ~ % hashcat -d 1,2 -O -m 1000 42EF98F2E9B77304716D2AECA2F0BD96 -a3 '?a?a?a?a?a?a?a' 
hashcat (v6.2.5-532-gcd77e488d) starting
* Device #2: Apple's OpenCL drivers (GPU) are known to be unreliable. You have been warned.
The device #2 specifically listed was skipped because it is an alias of device #1
장치 #1의 별칭이므로 특별히 나열된 장치 #2를 건너뛰었습니다
 
METAL API (Metal 306.7.4)
=========================
* Device #1: Apple M1 Max, 24512/49152 MB, 24MCU
 
OpenCL API (OpenCL 1.2 (Apr 15 2023 03:24:33)) - Platform #1 [Apple]
====================================================================
* Device #2: Apple M1 Max, skipped
 
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 27
Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Optimizers applied:
* Optimized-Kernel
* Zero-Byte
* Precompute-Init
* Meet-In-The-Middle
* Early-Skip
* Not-Salted
* Not-Iterated
* Single-Hash
* Single-Salt
* Brute-Force
* Raw-Hash
Watchdog: Temperature abort trigger set to 100c
Host memory required for this attack: 843 MB
[s]tatus [p]ause [b]ypass [c]heckpoint [f]inish [q]uit => s
Session..........: hashcat
Status...........: Running
Hash.Mode........: 1000 (NTLM)
Hash.Target......: 42ef98f2e9b77304716d2aeca2f0bd96
Time.Started.....: Wed Nov 15 19:38:35 2023 (4 secs)
Time.Estimated...: Wed Nov 15 21:15:04 2023 (1 hour, 36 mins)
Kernel.Feature...: Optimized Kernel
Guess.Mask.......: ?a?a?a?a?a?a?a [7]
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 12060.4 MH/s (7.25ms) @ Accel:1024 Loops:128 Thr:32 Vec:1
Recovered.Total..: 0/1 (0.00%) Digests
Progress.........: 52602077184/69833729609375 (0.08%)
Rejected.........: 0/52602077184 (0.00%)
Restore.Point....: 5505024/7737809375 (0.07%)
Restore.Sub.#1...: Salt:0 Amplifier:3712-3840 Iteration:0-128
Candidate.Engine.: Device Generator
Candidates.#1....: pG@|G&  -> LH(*@' 
Hardware.Mon.SMC.: Fan0: 39%, Fan1: 40%
Hardware.Mon.#1..: Util:100%

Case1)
hashcat -d 1 -D 1 -O -m 1000 42EF98F2E9B77304716D2AECA2F0BD96 -a3 '?a?a?a?a?a?a?a'
hashcat (v6.2.5-532-gcd77e488d) starting
No devices found/left.

Case2)
hashcat -d 2 -D 1 -O -m 1000 42EF98F2E9B77304716D2AECA2F0BD96 -a3 '?a?a?a?a?a?a?a'
hashcat (v6.2.5-532-gcd77e488d) starting
No devices found/left.

Case3)
hashcat -d 1 -D 2 -O -m 1000 42EF98F2E9B77304716D2AECA2F0BD96 -a3 '?a?a?a?a?a?a?a'
METAL API (Metal 306.7.4)
=========================
* Device #1: Apple M1 Max, 24512/49152 MB, 24MCU
OpenCL API (OpenCL 1.2 (Apr 15 2023 03:24:33)) - Platform #1 [Apple]
====================================================================
* Device #2: Apple M1 Max, skipped

Case4)
hashcat -d 2 -D 2 -O -m 1000 42EF98F2E9B77304716D2AECA2F0BD96 -a3 '?a?a?a?a?a?a?a'
hashcat (v6.2.5-532-gcd77e488d) starting
* Device #2: Apple's OpenCL drivers (GPU) are known to be unreliable. You have been warned.

METAL API (Metal 306.7.4)
=========================
* Device #1: Apple M1 Max, skipped
OpenCL API (OpenCL 1.2 (Apr 15 2023 03:24:33)) - Platform #1 [Apple]
====================================================================
* Device #2: Apple M1 Max, GPU, 24512/49152 MB (4608 MB allocatable), 24MCU

위 case로 볼 때 OpenCL은 ID가 2번이므로 -D 2에서만 정상적으로 동작하는 듯하다. -d 2에서 돌아간 이유는? alias 때문인가 ㅎㅎㅎㅎ 잘 모르겠다 몇 번 테스트해보고 성능에 맞게 쓰면 좋을듯하다.

 

4. Workload Profiles(-w)

hash crack에 사용할 workload Profiles를 사용한다. Profiles 종류로는 아래의 내용을 참고* 숫자가 높을수록 고성능, 많은 자원필요

- [ Options ] -
 -w, --workload-profile         | Num  | Enable a specific workload profile, see pool below   | -w 3
 
 
 - [ Workload Profiles ] -

  # | Performance | Runtime | Power Consumption | Desktop Impact
 ===+=============+=========+===================+=================
  1 | Low         |   2 ms  | Low               | Minimal
  2 | Default     |  12 ms  | Economic          | Noticeable
  3 | High        |  96 ms  | High              | Unresponsive
  4 | Nightmare   | 480 ms  | Insane            | Headless

 

5. Optimized-kernel-enable(-O)

정확히 어떤 옵션인지, 의미인지는 모르겠으나, -O 옵션이 없는 상황에서 사용했을 때 다음과 같은 알림이 발생함.
ATTENTION! Pure (unoptimized) backend kernels selected.
Pure kernels can crack longer passwords, but drastically reduce performance.
If you want to switch to optimized kernels, append -O to your commandline.
주의! 최적화되지 않은 순수 백엔드 커널이 선택되었습니다.
순수 커널은 더 긴 암호를 해독할 수 있지만 성능은 크게 저하됩니다.
최적화된 커널로 전환하려면 명령줄에 -O를 추가합니다.

- [ Options ] -
 -O, --optimized-kernel-enable  |      | Enable optimized kernels (limits password length)    |

알림대로 -O 옵션을 사용하였을 때 성능면에서 훨씬 높은 성능을 확인할 수 있었음

 

< -O 옵션 미사용 >

Session..........: hashcat                                
Status...........: Quit
Hash.Mode........: 12500 (RAR3-hp)
Hash.Target......: $RAR3$*0*de64fbe39c668063*6d67dc531cc348e568cdd30e623a00bc
Time.Started.....: Wed Nov 15 20:09:09 2023 (52 secs)
Time.Estimated...: Sun Nov 19 05:21:43 2023 (3 days, 9 hours)
Kernel.Feature...: Pure Kernel
Guess.Mask.......: ?1?1security?1?1?1 [13]
Guess.Charset....: -1 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%, -2 Undefined, -3 Undefined, -4 Undefined 
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:     4618 H/s (81.34ms) @ Accel:8 Loops:16384 Thr:32 Vec:1
Recovered.Total..: 0/1 (0.00%) Digests
Progress.........: 239616/1350125107 (0.02%)
Rejected.........: 0/239616 (0.00%)
Restore.Point....: 0/20151121 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:39-40 Iteration:81920-98304
Candidate.Engine.: Device Generator
Candidates.#1....: Lasecurity123 -> LSsecurityuna
Hardware.Mon.SMC.: Fan0: 0%, Fan1: 0%
Hardware.Mon.#1..: Util:100%

 

< -O 옵션 사용 >

Session..........: hashcat
Status...........: Running
Hash.Mode........: 12500 (RAR3-hp)
Hash.Target......: $RAR3$*0*de64fbe39c668063*6d67dc531cc348e568cdd30e623a00bc
Time.Started.....: Wed Nov 15 20:10:09 2023 (52 secs)
Time.Estimated...: Fri Nov 17 08:50:18 2023 (1 day, 12 hours)
Kernel.Feature...: Optimized Kernel
Guess.Mask.......: ?1?1security?1?1?1 [13]
Guess.Charset....: -1 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%, -2 Undefined, -3 Undefined, -4 Undefined 
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:    10228 H/s (148.73ms) @ Accel:32 Loops:16384 Thr:32 Vec:1
Recovered.Total..: 0/1 (0.00%) Digests
Progress.........: 516096/1350125107 (0.04%)
Rejected.........: 0/516096 (0.00%)
Restore.Point....: 0/20151121 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:21-22 Iteration:163840-180224
Candidate.Engine.: Device Generator
Candidates.#1....: wasecurity123 -> wPsecurityzya
Hardware.Mon.SMC.: Fan0: 0%, Fan1: 0%
Hardware.Mon.#1..: Util:100%

Hashcat 사용 예시

 

example) 응용 사용 예

hashcat -m 12500 -d 1 -D 2 -a 3 -O -w 3 -a 3 '$RAR3$*0*de64fbe39c668063*6d67dc531cc348e568
cdd30e623a00bc' -1 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%' -i
--increment-min=13 --increment-max 13 '?1?1security?1?1?1'

 - -m 12500 : RAR3-hp
 - -1 : 사용자 마스크 : abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%
 - -i --increment-min=13 --increment-max 13 : 최소, 최대 13글자 고정
 - ?1?1security?1?1?1 : 사용자마스크 ?1?1 + security + 사용자마스크?1?1?1
 

Session..........: hashcat                                
Status...........: Quit
Hash.Mode........: 12500 (RAR3-hp)
Hash.Target......: $RAR3$*0*de64fbe39c668063*6d67dc531cc348e568cdd30e623a00bc
Time.Started.....: Wed Nov 15 19:56:49 2023 (57 secs)
Time.Estimated...: Fri Nov 17 08:11:46 2023 (1 day, 12 hours)
Kernel.Feature...: Optimized Kernel
Guess.Mask.......: ?1?1security?1?1?1 [13]
Guess.Charset....: -1 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%, -2 Undefined, -3 Undefined, -4 Undefined 
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:    10346 H/s (143.84ms) @ Accel:32 Loops:16384 Thr:32 Vec:1
Recovered.Total..: 0/1 (0.00%) Digests
Progress.........: 589824/1350125107 (0.04%)
Rejected.........: 0/589824 (0.00%)
Restore.Point....: 0/20151121 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:24-25 Iteration:49152-65536
Candidate.Engine.: Device Generator
Candidates.#1....: vasecurity123 -> vPsecurityzya
Hardware.Mon.SMC.: Fan0: 0%, Fan1: 0%
Hardware.Mon.#1..: Util: 98%

etc. tip?

가끔 명령어가 인식이 안될 때는 옵션 뒤에 붙이는 문자열, 패턴 등에 세미콜론(')을 찍어보자.

etc. benchmark mode 

Hashcat의 알고리즘 별로 crack 속도 테스트를 진행하여 결과를 출력해 준다.
example) hashcat -b

MacBookPro-2 ~ % hashcat -b
hashcat (v6.2.5-532-gcd77e488d) starting in benchmark mode

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

* Device #2: Apple's OpenCL drivers (GPU) are known to be unreliable.
             You have been warned.

METAL API (Metal 306.7.4)
=========================
* Device #1: Apple M1 Max, 24512/49152 MB, 24MCU

OpenCL API (OpenCL 1.2 (Apr 15 2023 03:24:33)) - Platform #1 [Apple]
====================================================================
* Device #2: Apple M1 Max, skipped

Benchmark relevant options:
===========================
* --optimized-kernel-enable

-------------------
* Hash-Mode 0 (MD5)
-------------------
Speed.#1.........:  8638.3 MH/s (92.16ms) @ Accel:1024 Loops:1024 Thr:32 Vec:1
----------------------
* Hash-Mode 100 (SHA1)
----------------------
Speed.#1.........:  3280.9 MH/s (60.35ms) @ Accel:256 Loops:1024 Thr:32 Vec:1
---------------------------
* Hash-Mode 1400 (SHA2-256)
---------------------------
Speed.#1.........:  1297.6 MH/s (76.56ms) @ Accel:1024 Loops:128 Thr:32 Vec:1
---------------------------
* Hash-Mode 1700 (SHA2-512)
---------------------------
Speed.#1.........:   326.2 MH/s (76.16ms) @ Accel:256 Loops:64 Thr:64 Vec:1

 
 

반응형

 

암호의 구분

 

이동암호(Shift Cipher) 

 - 영문자를 나열하고 환자 전의 문자를 일정방향으로 일정 간격 시프트(shift) 시키는 방법이 있다.

 - Caesar 암호 :  시프트간격을 3만큼 평행이동 시킴으로 써 암호화함 a->D, b->E

- 전수 조사 공격, 소모적 공격(Exhaustive Search)에 취약

 

치환암호 (subsititution cipher)

단일 치환암호(Monoalphabetic Substitution Cipher, simple subsititution)

 - 평문문자를 다른 문자로 치환하여 암호화 하는 방식으로 암호화 키의 총 수 는 26! - 단순 환자 암호표

 - 전수 조사 공격시 2^88가지로 많은 시간이 필요하므로,  통계적 특징을 이용한 빈도분석에 의한 암호해독에 취약함

다중 치환암호(Polyalphabetic Substitution Cipher)

- 암호문 문자의 언어의 통계학적 성질을 제거할 수 있는 방식으로, 다표식 환자표를 2회이상 적용하는 방식

- 평문에 등장하는 문자의 빈도와 암호문에 등장하는 문자의 빈도를 다르게 만드는 암호 알고리즘

- Vigenere cipher : 특정 문자열,키워드(d)를 정한 후, vigenere cipher 변환표에서 평문과 키워드에 일치하는 위치하는 문자료 변환

 

전치암호(transposition, permutaion)

 - 평문문자의 순서를 어떤 특별한 절차에 따라 재배치하여 평문을 암호화하는 방식

 - 지름이 동일한 scytale 이라는 연통을 나눠 갖고, 파피루스를 감아 횡으로 평문을 작성하여 전치 암호화 

단순 전치 암호(simple transposition cipher)

- 정상적인 평문 배열을 특정한 키의 순서에 따라 평문 배열을 재조정하여 암호화

ex) 123456 > 351642

 

페이스텔 암호(Feistel)

- 암호 방식에서 전치와 환자를 반복시켜 암호화하면 암호문에 평문의 통계적 성질이나 암호키와의 관계를 숨길수 있어 보다안전한 암호 구성 가능

 

암호해독

 

Kerckhoffs의 원리(Kerckhoffs' Principle)

"암호 해독자는 현재 사용되고 있는 암호 방식을 알고 있는 것을 전제로 하고, 암호 해독을 시도하는 것으로 가정"

- 공격자는 항상 암/복호 알고리즘은 알고 있다고가정

- 암호의 안전성은 키의 안전성에만 바탕을 둠

- 키를 알아내는 것이 매우 어려워서 암/복호화 알고리즘을 비공개로 할 필요가 없어야 함

 

암호해독 방법은  암호 해독자가 사용 또는 알고 있는 내용에 따라 달라짐

 

1. 암호문 단독 공격(ciphertext only cryptanalysis)

  - 암호 해독자는 단지 암호문 C만을 갖고 이로부터 평문 M이나 키 K를 찾아내는 방법

  - 평문 M의 용장도, 통계적 성질, 문장의 특성 등을 추정하여 해독

2. 기지 평문 공격(known-plaintext cryptanalysis)

  - 암호 해독자는 약간의 평문 M에 대응 하는 암호문 C를 알고 있는 상태에서 해독하는 방법 

  - 암호문 C와 평문 M의 관계로부터 키 K나 평문 M을 추정하여 해독

3. 선택 평문 공격(chosen-plaintext cryptanalysis)

  - 암호 해독자가 사용된 암호기에 접근할 수 있어 평문 M을 선택하여 그 평문 M에 해당하는 암호문 C를 얻어 키 K나 평문 M을 추정하여 암호를 해독하는 방법

4. 선택 암호문 공격(chosen-ciphertext cryptanalysis)

  - 암호해독자가 암호 복호기에 접근할 수 있어 일부 암호문 C에 대한 평문M을 얻어 암호를 해독하는 방법

 

Shanon Theory

 

암호는 혼돈과 확산 특성을 동시에 갖도록 치환과 전치를 결합하여 사용해야 하며, 안전성을 높이기 위해 연산들을 반복적으로 사용할 것을 제시

 1. 혼돈(confusion) : 평문의 작은 변화가 암호문에 어떤 변화를 일으킬 것인지 예측할 수 없는 성질을 말하며 암호문과, 암호키 간의 관계를 알기어렵게 만듦, Subsititution(치환)

 2. 확산(diffusion) : 평문의 통계적 특성을 암호문 전반으로 확산시켜 이를 숨기는 것을 말하며, 이를 통해 암호문과 평문 사이의 관계를 알기 어렵게 만듦, Transposition(Permutation, 순열, 전치)

반응형

'Information Security > Cryptography' 카테고리의 다른 글

암호학 용어 정리 및 분류  (0) 2023.10.29

평문(plain text, P) : 암호화가 되어 있지 않아 누구나 식별할 수 있는 문장 또는 문자열

암호문(cryptogram 또는 ciphertext, C) :  평문을 일반인이 이해할 수 없는 형태로 변형된 문장

암호화(encryption process) : 평문을 암호문으로 변환하는 과정

복호화(decryption procss) : 암호문을 평문으로 변화하는 방법을 알고 평문으로 바꾸는 과정

해독(analysis process), (attack process) :  변환방법을 모르는 상태에서 평문을 얻는 과정

암호화키(encryption key, EK) : 평문을 암호문으로 바꾸는 데 필요한 키

복호화키(decryption key, DK) : 암호문을 평문으로 바꾸는데 필요한 키

암호화함수(encryption function, E)

복호화함수(decryption function, D)

송신자(sender, alice) : 암호화된 정보를 안전하게 보내기를 원하는 사람 또는 주체

수신자(reciver, bob) : 송신자로부터 합법적으로 정보를 받는 사람 또는 주체

도청자(eavesdropper, trudy)  송신자와 수신자 사이에 전송중인 정보 또는 저장된 정보를 가로채려는 사람 또는 주체

 - 단순히 정보를 가로채려는 사람을 수동적인(passive) 도청자

 - 정보의 변조 또는 차단 등으로 수신자를 혼돈시키는 도청자를 능동적(active) 도청자

 

 

대칭암호와 비대칭 암호

 

 1. 대칭암호 (Sysmmetic cipher) :

암호화를 할 때 사용하는 키와 복호화할 때 사용되는 키가 동일한 암호 알고리즘

  - 비밀키 사전 공유에 대한 문제 존재

  - 대표적으로 DES, AES, SEED가 존재함

 2. 비대칭 암호(Asysmmetic cipher ) :

암호화를 할 때 사용하는 키와 복호화를 할 때 사용하는 키가 서로 다른 암호 알고리즘, 암호화 키를 공개키(public key)라 하고, 복호화 키를 개인키(private key)라고함

 - 대표적으로 RSA, EIGamal가 존재함

 

블록암호와 스트림 암호 

 

 1.  블록암호(block cipher) :

평문을 일정한 블록 단위로 나누어서, 각 단위마다 암호화 과정을 수행하여, 블록단위로 암호문을 얻는 방법

  - 다양한 플랫폼에서 범용적으로 사용, 메모리, 속도 측면에서 제한적, 안전성 분석 용이, 인증과 같은 암호 서비스에 사용

 1) 블록암호의 주요 연산

   ① 순열(Permutation)

     각 비트의 위치를 변경하거나 행렬을 이용하여 섞어주는 선형 연산 수행(단순 P-박스, 축소 P-박스, 확장 P-박스)

      * 축소 P-박스와 확장 P-박스는 역함수가 존재하지 않음

   ② 치환(Substitution)

     m 비트 입력을 n 비트 입력으로 치환(비선형 함수 사용)

     * m과 n이 같을 필요 없음.

   ③ Exclusive-OR(XOR)

     배타적 논리합, 각각의 비트에 XOR 연산 수행, 2개의 비트가 동일한 경우 0, 다른 경우 1 출력

   ④ Circular Shift(Rotation)

      순환 이동, n-비트 입력을 받아 r- 비트 만큼 회전이동하는 연산

   ⑤ Swap

      r=n/2인 형태의 Circular shift 연산

   ⑥ 분할(Split)과 결합(Combine)

 

  2) 블록 암호의 구성

   구성 : 암호화 과정 + 키 생성 과정(키 스케줄)

   - Shannon 이론 : 치환과 순열을 반복적으로 적용하면 안전한 암호를 설계할 수 있음

    ① 혼돈(Confusion) : 암호문과 비밀키 사이의 관계를 숨기는 역할, 주로 치환(Subsititution, S-box)을 이용

    ② 확산(Diffusion) : 평문과 암호문의 관계를 숨기는 역할, 주로 수열(Permutation)을 이용

    ③ 라운드(Rounds) : S-box, P-box, 기타 연산을 이용, Product Cipher를 구성하는 단위 연산

 

 3) 블록암호의 구조

   ① Feistel 구조 : DES, SEED 등

     - 블록 암호의 대표적인 구조, SPN 구조에 비해 설계가 자유로움

     - 암/복호화 과정이 동일, 라운드 함수에 무관하게 복호화(키 순서만 바꾸어 적용)

     - 구조적 취약점이 발견되지 않음

     - 취약한 라운드를 반복 사용함으로써 강한 암호를 설계

   ② SPN 구조 : AES, ARIA 등

     - Shannon의 혼돈(Confusion)과 확산(Diffusion) 이론을 바탕으로 한 구조

     - 치환(Subsititutions)와 순열(Permutation)을 반복하면 암전한 암호를 설계 할 수 있음

     - SPN 구조의 1라운드는 Feistel 구조의 2라운드의 효과를 가짐

     - 암호화와 복호화가 다름

 

 

 2.  스트림 암호(stream cipher) :

평문과 같은 길이의 키스트림을 생성하여 평문과 키를 비트단위로 합하여(XOR) 암호문을 얻는 방법

  - 실시간으로 사용 가능

  - 블록 암호에 비해 경량

  - 암호화 속도가 빠름(하드웨어 환경)

  - 키 수열에 대한 엄격한 동기화 요구

 

 

오류전달암호와 비오류 전달암호

암호화 과정에서 발생한 오류가 뒤에 암호화에 영향을 주는 암호를 오류전달암호(에러확산, error propagation cipher), 영향을 받지 않는 암호를 비오류전달암호라 한다.

 

피드백 암호와 비피드백 암호

스트림 암호계에서 주로 이용되는 방법으로 비트별로 암호화할 떄, 이미 암호화된 비트에 영향을 받아 암호화되는 암호를 피드백 암호(feedback cipher)라하고 그렇지 않은 암호를 비피드백 암호라 한다.

반응형

'Information Security > Cryptography' 카테고리의 다른 글

암호 구분 및 암호 해독  (1) 2023.10.29

 

 

 

import utmp

if __name__ == '__main__':
    with open('./wtmp(sg)', 'rb') as fd:
        buf = fd.read()
        for entry in utmp.read(buf):
            print(entry.time, entry.type, entry)
반응형

Install the App(Homebrew)

1. 터미널 실행

 - Press Command+Space and type Terminal and press Enter/return key.

2. 터미널에 다음 명령어 실행

 - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 

 - Homebrew가 설치 될 동안 기다려야함, 만약 패스워드를 입력하라고 하는경우 사용자 패스워드를 입력하면됨

  * sudo로 실행하면 안됨

3. 터미널에 다음 명령어 실행

  - echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile

4. 터미널 종료 후 재시작 필요

 

Install hydra on Mac OSX

1. 터미널에 다음 명령어 실행

  - brew install hydra 

2. You can now use hydra

 

hydra로 FTP 크랙

 

ex)

hydra -t 64 -V -f -l root -P direction-changes.txt ftp://192.168.0.3:3000

hydra -V -f -l test -x 5:5:a1 ftp://192.168.0.6:3000

 

hydra manual

hydra -h

Hydra v9.3 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).



Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [-m MODULE_OPT] [service://server[:PORT][/OPT]]


Options:
  -R        restore a previous aborted/crashed session
  -I        ignore an existing restore file (don't wait 10 seconds)
  -S        perform an SSL connect
  -s PORT   if the service is on a different default port, define it here
  -l LOGIN or -L FILE  login with LOGIN name, or load several logins from FILE
  -p PASS  or -P FILE  try password PASS, or load several passwords from FILE
  -x MIN:MAX:CHARSET  password bruteforce generation, type "-x -h" to get help
  -y        disable use of symbols in bruteforce, see above
  -r        use a non-random shuffling method for option -x
  -e nsr    try "n" null password, "s" login as pass and/or "r" reversed login
  -u        loop around users, not passwords (effective! implied with -x)
  -C FILE   colon separated "login:pass" format, instead of -L/-P options
  -M FILE   list of servers to attack, one entry per line, ':' to specify port
  -o FILE   write found login/password pairs to FILE instead of stdout
  -b FORMAT specify the format for the -o FILE: text(default), json, jsonv1
  -f / -F   exit when a login/pass pair is found (-M: -f per host, -F global)
  -t TASKS  run TASKS number of connects in parallel per target (default: 16)
  -T TASKS  run TASKS connects in parallel overall (for -M, default: 64)
  -w / -W TIME  wait time for a response (32) / between connects per thread (0)
  -c TIME   wait time per login attempt over all threads (enforces -t 1)
  -4 / -6   use IPv4 (default) / IPv6 addresses (put always in [] also in -M)
  -v / -V / -d  verbose mode / show login+pass for each attempt / debug mode 
  -O        use old SSL v2 and v3
  -K        do not redo failed attempts (good for -M mass scanning)
  -q        do not print messages about connection errors
  -U        service module usage details
  -m OPT    options specific for a module, see -U output for information
  -h        more command line options (COMPLETE HELP)
  server    the target: DNS, IP or 192.168.0.0/24 (this OR the -M option)
  service   the service to crack (see below for supported protocols)
  OPT       some service modules support additional input (-U for module help)


Supported services: adam6500 asterisk cisco cisco-enable cobaltstrike cvs ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey teamspeak telnet[s] vmauthd vnc xmpp


Hydra is a tool to guess/crack valid login/password pairs.
Licensed under AGPL v3.0. The newest version is always available at;
https://github.com/vanhauser-thc/thc-hydra
Please don't use in military or secret service organizations, or for illegal
purposes. (This is a wish and non-binding - most such people do not care about
laws and ethics anyway - and tell themselves they are one of the good ones.)
These services were not compiled in: afp firebird memcached mongodb ncp oracle postgres radmin2 rdp sapr3 svn smb2.


Use HYDRA_PROXY_HTTP or HYDRA_PROXY environment variables for a proxy setup.
E.g. % export HYDRA_PROXY=socks5://l:p@127.0.0.1:9150 (or: socks4:// connect://)
     % export HYDRA_PROXY=connect_and_socks_proxylist.txt  (up to 64 entries)
     % export HYDRA_PROXY_HTTP=http://login:pass@proxy:8080
     % export HYDRA_PROXY_HTTP=proxylist.txt  (up to 64 entries)


Examples:
  hydra -l user -P passlist.txt ftp://192.168.0.1
  hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
  hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
  hydra -l admin -p password ftp://[192.168.0.0/24]/
  hydra -L logins.txt -P pws.txt -M targets.txt ssh

 

hydra -x(password bruteforce generation) manual

hydra -x -h

Hydra v9.3 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).



Hydra bruteforce password generation option usage:


  -x MIN:MAX:CHARSET


     MIN     is the minimum number of characters in the password
     MAX     is the maximum number of characters in the password
     CHARSET is a specification of the characters to use in the generation
             valid CHARSET values are: 'a' for lowercase letters,
             'A' for uppercase letters, '1' for numbers, and for all others,
             just add their real representation.
  -y         disable the use of the above letters as placeholders
Examples:
   -x 3:5:a  generate passwords from length 3 to 5 with all lowercase letters
   -x 5:8:A1 generate passwords from length 5 to 8 with uppercase and numbers
   -x 1:3:/  generate passwords from length 1 to 3 containing only slashes
   -x 5:5:/%,.-  generate passwords with length 5 which consists only of /%,.-
   -x 3:5:aA1 -y generate passwords from length 3 to 5 with a, A and 1 only


The bruteforce mode was made by Jan Dlabal, http://houbysoft.com/bfg/

 

반응형

1. 관리체계 수립 및 운영

  1.1 관리체계 기반 마련

      1.1.1 경영진의 참여

          최고경영자는 정보보호 및 개인정보보호 관리체계의 수립과 운영활동 전반에 경영진의 참여가 이루어질 수 있도록 보고 및 의사 결정 체계를 수립하여 운영하여야 한다.

 

         ㅇ 운영활동 전반에 경영진의 참여가 이루어질 수 있도록 보고 및 의사결정 등의 책임과 역할을 문서화

            - 의사결정 등의 책임과 역할 등 활동의 근거를 정보보호 및 개인정보보호 정책 또는 시행 문서에 명시

               * 정보보호 정책서에 분기별로 정보보호 현황을 경영진에게 보고하도록 명시 하였으나, 장기간 관련 보고 미수행

 

         ㅇ 경영진이 의사결정에 적극적으로 참여할 수 있는 보고, 검토 및 승인 절차를 수립. 이행

            - 정보보호 및 개인정보보호 관리체계 내 경영진이 참여하는 활동을 정의하고 그에 따른 보고체계 마련

            - 효과적으로 참여할 수 있도록 조직 규모 및 특성에 맞게 보고 및 의사결정 절차, 대상, 주기 등 결정 

            - 수립된 절차에 따라 관리체계 내 주요 사항에 대하여 보고를 받고 의사결정 참여

               * 중요 정보보호 활동을 수행하면서 관련 활동 보고, 승인 등 의사결정에 경영진 권한을 위임받은자가 참여하지

                 않았거나, 관련 증적이 확인되지 않은 경우

 

      1.1.2 최고책임자의 지정

         최고경영자는 정보보호 업무를 총괄하는 정보보호  최고책임자와 개인정보보호 업무를 총괄하는 개인정보보호 책임자를 예산, 인력 등 자원을 할당할 수 있는 임원급으로 지정하여야 한다.

 

         ㅇ  최고경영자는 정보보호 및 개인정보보호 관리 업무를 총괄하는 최고책임자를 공식적으로 지정(인사발령 등)

            - 최고책임자는 인사발령 등을 통해 공식으로 임명, 당연직의 경우 정보보호 및 개인정보보호 정책서에 직위명시

 

         ㅇ  최고책임자는 예산, 인력 등 자원을 할당 할 수 있는 임원급으로 지정 및 법령에 따른 자격요건 충족

            (망법 시행령 제36조의7)

            - 정보보호 및 개인정보보호 최고책임자는 관련 지식 및 소양이 있는자로, 자원을 할당 할 수 있는 임원급으로 지정 

             * 최고책임자 지정 및 신고 의무 대상자임에도 정보보호 최고책임자를 지정 및 신고하지 않은경우

망법 제45조의3(정보보호 최고책임자의 지정 등)
  ① 정보통신서비스 제공자는 정보통신시스템 등에 대한 보안 및 정보의 안전한 관리를 위하여 대통령령으로 정하는 기준에 해당 하는 임직원을 정보보호 최고책임자로 지정하고 과학기술정보통신부장관에게 신고하여야 한다.
다만, 자산총액, 매출액 등이 대통령령으로 정하는 기준에 해당하는 정보통신서비스 제공자의 경우에는 정보보호 최고책임자를 신고하지 아니할 수 있다.
  ⑦ 정보보호 최고책임자의 자격요건 등에 필요한 사항은 대통령령으로 정한다.

망법 시행령 제36조의7(정보보호 최고책임자의 지정 및 겸직금지 등)

  ① 법 제45조의3제1항 본문에서 “대통령령으로 정하는 기준에 해당하는 임직원”이란 다음 각 호의 구분에 따른 사람을 말한다. <신설 2021. 12. 7.>
    1. 다음 각 목의 어느 하나에 해당하는 정보통신서비스 제공자: 사업주 또는 대표자
      가. 자본금이 1억원 이하인 자
      나. 「중소기업기본법」 제2조제2항에 따른 소기업
      다. 「중소기업기본법」 제2조제2항에 따른 중기업으로서 다음의 어느 하나에 해당하지 않는 자
        1) 「전기통신사업법」에 따른 전기통신사업자
        2) 법 제47조제2항에 따라 정보보호 관리체계 인증을 받아야 하는 자
        3) 「개인정보 보호법」 제30조제2항에 따라 개인정보 처리방침을 공개해야 하는 개인정보처리자
        4) 「전자상거래 등에서의 소비자보호에 관한 법률」 제12조에 따라 신고를 해야 하는 통신판매업자
    2. 다음 각 목의 어느 하나에 해당하는 정보통신서비스 제공자: 이사
      가. 직전 사업연도 말 기준 자산총액이 5조원 이상인 자
      나. 법 제47조제2항에 따라 정보보호관리체계 인증을 받아야 하는자 중 직전 사업연도 말 기준 자산총액 5천억원 이상

    3. 제1호 및 제2호에 해당하지 않는 정보통신서비스 제공자: 다음 각 목의 어느 하나에 해당하는 사람
     가. 사업주 또는 대표자
     나. 이사
     다. 정보보호 관련 업무를 총괄하는 부서의 장

  ③ 법 제45조의3제1항 단서에 해당하는 자가 정보보호 최고책임자를 신고하지 않은 경우에는 사업주나 대표자를 정보보호 최고책임자로 지정한 것으로 본다. <신설 2021. 12. 7.>

  ④ 법 제45조의3제1항 및 제7항에 따라 정보통신서비스 제공자가 지정ㆍ신고해야 하는 정보보호 최고책임자는  각 호의 어느 하나에 해당하는 자격을 갖추어야 한다. 이 경우 정보보호 또는 정보기술 분야의 학위는 「고등교육법」 제2조 각 호의 학교에서 「전자금융거래법 시행령」 별표 1 비고 제1호 각 목에 따른 학과의 과정을 이수하고 졸업하거나 그 밖의 관계법령에 따라 이와 같은 수준 이상으로 인정되는 학위를, 정보보호 또는 정보기술 분야의 업무는 같은 비고 제3호 및 제4호에 따른 업무를 말한다. <개정 2021. 12. 7.>

        1. 정보보호 또는 정보기술 분야 석사학위 이상 학위를 취득한 사람
        2. 정보보호 또는 정보기술 분야 학사학위를 취득한,해당 분야의 업무를 3년 이상 경력
        3. 정보보호 또는 정보기술 분야 전문학사학위 취득한, 해당 분야의 업무를 5년 이상 경력
        4. 정보보호 또는 정보기술 분야 업무를 10년 이상 수행한 경력
        5. 법 제47조제6항제5호에 따른 정보보호 관리체계 인증심사원의 자격 취득
        6. 해당 정보통신서비스 제공자의 소속인 정보보호 관련 업무를 담당하는 부서의 장으로 1년 이상 근무 경력

  ⑤ 법 제45조의3제3항에서 “자산총액, 매출액 등 대통령령으로 정하는 기준에 해당하는 정보통신서비스 제공자”란 정보 통신 서비스 제공자로서 제1항제2호 각 목의 어느 하나에 해당하는 자를 말한다. <개정 2021. 12. 7.>

  ⑥ 제5항에 따른 정보통신서비스 제공자가 지정ㆍ신고해야 하는 정보보호 최고책임자는 제4항에 따른 자격을 갖추고 상근(常勤)하는 사람으로서 다음 각 호의 어느 하나에 해당하는 자격을 추가 필요
     1. 정보보호 분야의 업무를 4년 이상 수행한 경력이 있는 사람
     2. 정보보호 분야, 정보기술 분야 업무경력 합산 기간이 5년(정보보호 분야의 업무 2년 이상 경력) 이상인 사람


개보법 제32조(개인정보 보호책임자의 업무 및 지정요건 등) 
 ② 개인정보처리자는 법 제31조제1항에 따라 개인정보 보호책임자를 지정하려는 경우, 다음 각 호의 구분에 따라 지정
  1. 공공기관: 다음 각 목의 구분에 따른 기준에 해당하는 공무원 등
   가. 중앙행정기관: 고위공무원단에 속하는 공무원(이하 “고위공무원”이라 한다) 또는 그에 상당
   나. 가목 외에 정무직공무원을 장(長)으로 하는 국가기관: 3급 이상 또는 그에 상당
   다. 가목 및 나목 외에 고위공무원, 3급 공무원(상당)을 장으로 하는 국가기관: 4급 이상 또는 그에 상당
   라. 가목부터 다목까지 외의 국가기관(소속 기관을 포함한다): 개인정보 처리 관련 업무를 담당하는 부서의 장
   마. 시ㆍ도 및 시ㆍ도 교육청: 3급 이상 또는 그에 상당
   바. 시ㆍ군 및 자치구: 4급 또는 그에 상당
   사. 제2조제5호에 따른 각급 학교: 해당 학교 행정사무 총괄하는 사람
   아. 가목부터 사목까지 외의 공공기관개인정보 처리 관련 업무를 담당하는 부서의 장

  2. 공공기관 외의 개인정보처리자: 다음 각 목의 어느 하나에 해당하는 사람
   가. 사업주 또는 대표자
   나. 임원(임원이 없는 경우에는 개인정보 처리 관련 업무를 담당하는 부서의 장)

③ 제2항에도 불구하고 개인정보처리자가 「소상공인기본법」 제2조에 따른 소상공인에 해당하는 경우에는 별도의 지정 없이 그 사업주 또는 대표자를 개인정보 보호책임자로 지정한 것으로 본다.다만, 개인정보처리자가 별도로 개인정보보호책임자를 지정한 경우에는 그렇지 않다. 

 

      1.1.3 조직 구성

         최고경영자는 정보보호와 개인정보보호의 효과적 구현을 위한 실무조직, 조직 전반의 정보보호와 개인정보보호 관련 주요 사항을 검토 및 의결할 수 있는 위원회, 전사적 보호활동을 위한 부서별 정보보호와 개인정보보호담당자로  구성된 협의체를 구성하여 운영하여야 한다.

       

         ㅇ 관리체계의 지속적 운영을 위해 필요한 조직구성의 근거를 정보보호 및 개인정보보호 정책서 등에 명시하고, 전문성을 갖춘 실무조직을 구성하여 운영

            - CISO, CPO, 실무조직, 위원회 등 정보보호 조직의 구성, 운영에 대한 사항을 정책서 및 내부관리계획에 명시

            - 실무조직은 전담, 겸임으로 구성가능하나, 겸임조직을 구성하더라도 역할 및 책임이 공식적으로 부여필요

            - 실무조직의 구성원은 정보보호 및 개인정보보호 전문성과 다양한 서비스 이해와 경험이 많은 직원으로 구성

 

         ㅇ 조직전반에 중요한 정보보호 관련사항에 대하여 검토, 승인 및 의사결정을 할 수 있는 위원회를 구성, 운영 필요

           - 위원회는 경영진, CISO, CPO 등 의사결정 권한이 있는 임직원으로 구성하여 정기 또는 사안에 따라 수시개최

            -> 주요사안 : 정책, 지침의 제,개정, 위험평가 결과, 예산 및 자원 할당, 보안, 위반사고 조치, 내부감사 결과 등

           * 정보보호 및 개인정보보호 위원회를 구성하였으나, 실무부서 장으로만 구성되어 있어 주요 정보보호사항에 대해 결정할 수 없는 경우

           * 위원회를 개최하였으나, 연간 정보보호 및 개인정보보호 계획, 교육 계획, 예산인력 등 주요 사항이 검토 및 의사 결정이 되지 않은 경우

 

         ㅇ 전사적 활동을 위해 정보보호 및 개인정보보호 관련 담당자, 부서별 담당자로 구성된 실무협의체를 구성 운영필요

           - 실무 협의체에서는 정보보호 및 개인정보보호 관련사항을 실무차원에서 공유,조정,검토,개선하고, 의사결정 및 경영진 지원 필요시 위원회에 상정하여 논의

           * 내부 지침에 따라 중요 정보처리 부서 및 개인정보처리 부서장(팀장급)으로 구성된 실무협의체를 구성하였으나,  장기간 미운영

 

      1.1.4 범위 설정

        조직의 핵심 서비스와 개인정보 처리 현황 등을 고려하여 관리체계 범위를 설정하고, 관련된 서비스를 비롯하여 개인정보 처리 업무와 조직, 자산, 물리적 위치 등을 문서화 하여야 한다.

 

      ㅇ 조직의 핵심 서비스 및 개인정보 처리에 영향을 줄 수 있는 핵심자산을 관리체계 범위에 포함하여야 함

        - 관리체계 범위에는 사업(서비스)와 관련된 임직원, 정보시스템, 정보, 시설 등 유, 무형의 핵심자산을 누락없이 포함

        - 관리체계 의무대상자 경우 법적 요구사항에 따른 정보통신서비스 및 관련 정보자산 의무적으로 포함하여 범위 설정

 

      ㅇ 정의된 범위 중 예외사항이 있을 경우 명확한 사유 및 관련자 협의, 책임자승인 등 관련 근거를 기록, 관리 하여야 함

        - 정보보호 관리체계와 개인정보 관리체계의 범위가 상이한 경우 인증범위 내의 정보자산 목록(개인정보, 시스템, 네트워크 등)을 정보보호 관리체계 및 개인정보보호 관리체계 관점에서 명확하게 식별하여 정의

         - 인증범위에서 제외되는 서비스, 정보시스템 등에 대해서는 내부 협의 및 책임자 승인을 거친 후 사유 및 근거 기록 관리

      ㅇ 관리체계 범위를 명확히 할 수 있도록 관련된 내용(주요 서비스 및 업무 현황, 정보시스템 목록, 문서목록 등)이 포함된 문서를 작성하여 관리하여야 한다.

         -  주요 서비스 및 업무 현황(개인정보 처리 업무 현황 포함)

         - 서비스 제공과 관련된 조직 현황(조직도 등)

         - 정보보호 및 개인정보보호 조직 현황

         - 주요 설비 목록

         - 정보시스템 목록 및 네트워크 구성도

      1.1.5 정책 수립

      1.1.6 자원 할당

  1.2 위험 관리

      1.2.1 정보자산 식별

      1.2.2 현황 및 흐름분석

      1.2.3 위험평가

      1.2.4 보호대책 선정

  1.3 관리체계 운영

      1.3.1 보호대책 구현

      1.3.2 보호대책 공유

      1.3.3 보호대책 관리

  1.4 관리체계 점검 및 개선

      1.4.1 법적 요구사항 준수 검토

      1.4.2 관리체계 점검

      1.4.3 관리체계 개선

 

반응형

 

1. 관리체계 수립 및 운영

  1.1 관리체계 기반 마련

      1.1.1 경영진의 참여

          최고경영자는 정보보호 및 개인정보보호 관리체계의 수립과 운영활동 전반에 경영진의 참여가 이루어질 수 있도록

          보고 및 의사 결정 체계를 수립하여 운영하여야 한다.

      1.1.2 최고책임자의 지정

      1.1.3 조직 구성

      1.1.4 범위 설정

      1.1.5 정책 수립

      1.1.6 자원 할당

  1.2 위험 관리

      1.2.1 정보자산 식별

      1.2.2 현황 및 흐름분석

      1.2.3 위험평가

      1.2.4 보호대책 선정

  1.3 관리체계 운영

      1.3.1 보호대책 구현

      1.3.2 보호대책 공유

      1.3.3 보호대책 관리

  1.4 관리체계 점검 및 개선

      1.4.1 법적 요구사항 준수 검토

      1.4.2 관리체계 점검

      1.4.3 관리체계 개선

 

반응형

1. 관리체계 수립 및 운영

  1.1 관리체계 기반 마련

      1.1.1 경영진의 참여

      1.1.2 최고책임자의 지정

      1.1.3 조직 구성

      1.1.4 범위 설정

      1.1.5 정책 수립

      1.1.6 자원 할당

  1.2 위험 관리

      1.2.1 정보자산 식별

      1.2.2 현황 및 흐름분석

      1.2.3 위험평가

      1.2.4 보호대책 선정

  1.3 관리체계 운영

      1.3.1 보호대책 구현

      1.3.2 보호대책 공유

      1.3.3 보호대책 관리

  1.4 관리체계 점검 및 개선

      1.4.1 법적 요구사항 준수 검토

      1.4.2 관리체계 점검

      1.4.3 관리체계 개선

2. 보호대책 요구사항

  2.1 정책, 조직, 자산 관리

      2.1.1 정책의 유지관리

      2.1.2 조직의 유지관리

      2.1.3 정보자산 관리

  2.2 인적 보안

      2.2.1 주요 직무자 지정 및 관리

      2.2.2 직무 분리

      2.2.3 보안 서약

      2.2.4 보안 서약

      2.2.4 인식제고 및 교육 훈련

      2.2.5 퇴직 및 직무변경 관리

      2.2.6 보안 위반 시 조치

  2.3 외부자 보안

      2.3.1 외부자 현황 관리

      2.3.2 외부자 계약 시 보안

      2.3.3 외부자 보안 이행 관리

      2.3.4 외부자 계약 변경 및 만료 시 보안

  2.4 물리 보안

      2.4.1 보호구역 지정

      2.4.2 출입통제

      2.4.3 정보시스템 보호

      2.4.4 보호설비 운영

      2.4.5 보호구역 내 작업

      2.4.6 반출입 기기 통제

      2.4.7 업무환경 보안

  2.5 인증 및 권한관리

      2.5.1 사용자 계정 관리

      2.5.2 사용자 식별

      2.5.3 사용자 인증

      2.5.4 비밀번호 관리

      2.5.5 특수 계정 및 권한 관리

      2.5 6 접근권한 검토

  2.6 접근통제

      2.6.1 네트워크 접근

      2.6.2 정보시스템 접근

      2.6.3 응용프로그램 점금

      2.6.4 데이터베이스 접근

      2.6.5 무선네트워크 접근

      2.6.6 원격접근 통제

      2.6.7 인터넷 접속 통제

  2.7 암호화 적용

      2.7.1 암호정책 적용

      2.7.2 암호키 관리

  2.8 정보시스템 도입 및 개발 보안

      2.8.1 보안 요구사항 정의

      2.8.2 보안 요구사항 검토 및 시험

      2.8.3 시험과 운영 환경 분리

      2.8.4 시험 데이터 보안

      2.8.5 소스 프로그램 관리

      2.8.6 운영환경 이관

  2.9 시스템 및 서비스 운영 관리

      2.9.1 변경관리

      2.9.2 성능 및 장애관리

      2.9.3 백업 및 복구관리

      2.9.4 로그 및 접속기록 관리

      2.9.5 로그 및 접속기록 점검

      2.9.6 시간 동기화

      2.9.7 정보자산의 재사용 및 폐기

  2.10 시스템 및 서비스 보안 관리

      2.10.1 보안시스템 운영

      2.10.2 클라우드 보안

      2.10.3 공개서버 보안

      2.10.4 전자거래 및 핀테크 보안

      2.10.5 정보전송 보안

      2.10.6 업무용 단말기기 보안

      2.10.7 보조저장매체 관리

      2.10.8 패치관리

      2.10.9 악성코드 통제

  2.11 사고 예방 및 대응

      2.11.1 사고 예방 및 대응체계 구축

      2.11.2 취약점 점검 및 조치

      2.11.3 이상행위 분석 및 모니터링

      2.11.4 사고 대응 훈련 및 개선

      2.11.5 사고 대응 및 복구

  2.12 재해 복구

      2.12.1 재해, 재난 대비 안전조치

      2.12.2 재해 복구 시험 및 개선

3. 개인정보 처리 단계별 요구사항

  3.1 개인정보 수집 시 보호조치

      3.1.1 개인정보 수집 제한

      3.1.2 개인정보의 수집 동의

      3.1.3 주민등록번호 처리 제한

      3.1.4 민감정보 및 고유식별정보의 처리 제한

      3.1.5 간접수집 보호 조치

      3.1.6 영상정보처리기기 설치, 운영

      3.1.7 홍보 및 마케팅 목적 활용 시 조치

  3.2 개인정보 보유 및 이용 시 보호조치

      3.2.1 개인정보 현황관리

      3.2.2 개인정보 품질보장

      3.2.3 개인정보 표시제한 및 이용 시 보호조치

      3.2.4 이용자 단말기 접근 보호

      3.2.5 개인정보 목적 외 이용 및 제공

  3.3 개인정보 제공 시 보호조치

      3.3.1 개인정보 제3자 제공

      3.3.2 업무 위탁에 따른 정보주체 고지

      3.3.3 영업의 양수 등에 따른 개인정보의 이전

      3.3.4 개인정보의 국외 이전

  3.4 개인정보 파기 시 보호조치

      3.4.1 개인정보의 파기

      3.4.2 처리목적 달성 후 보유 시 조치

      3.4.3 휴면 이용자 관리

  3.5 정보주체 권리 보호

      3.5.1 개인정보처리방침 공개

      3.5.2 정보주체 권리 보장

      3.5.3 이용내역 통지

반응형

ㅇ 도커 그룹 계정 확인

[root@localhost vulninsp]# cat /etc/group | grep docker
docker:x:982:vulninsp

ㅇ 도커버전 확인하기
[root@localhost Desktop]# docker version
Client: Docker Engine - Community
 Version:           20.10.16
 API version:       1.41
 Go version:        go1.17.10
 Git commit:        aa7e414
 Built:             Thu May 12 09:19:45 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.16
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.10
  Git commit:       f756502
  Built:            Thu May 12 09:18:08 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.4
  GitCommit:        212e8b6fa2f44b9c21b2798135fc6fb7c53efc16
 runc:
  Version:          1.1.1
  GitCommit:        v1.1.1-0-g52de29d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0


ㅇ 도커 상태 확인하기
[root@localhost vulninsp]# sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since 월 2022-05-16 20:51:05 KST; 1min 35s ago
     Docs: https://docs.docker.com
 Main PID: 85039 (dockerd)
    Tasks: 7
   Memory: 57.8M
   CGroup: /system.slice/docker.service
           └─85039 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

 5월 16 20:51:04 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:04.314495166+09:00" level=info ...grpc
 5월 16 20:51:04 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:04.314500646+09:00" level=info ...grpc
 5월 16 20:51:04 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:04.337640072+09:00" level=info ...rt."
 5월 16 20:51:04 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:04.967537486+09:00" level=info ...ess"
 5월 16 20:51:05 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:05.066402652+09:00" level=info ...ing"
 5월 16 20:51:05 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:05.114139274+09:00" level=info ...ne."
 5월 16 20:51:05 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:05.152550449+09:00" level=info ...0.16
 5월 16 20:51:05 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:05.156610072+09:00" level=info ...ion"
 5월 16 20:51:05 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
 5월 16 20:51:05 localhost.localdomain dockerd[85039]: time="2022-05-16T20:51:05.175801889+09:00" level=info ...ock"
Hint: Some lines were ellipsized, use -l to show in full.


ㅇ 설치된 도커 이미지 확인
[root@localhost vulninsp]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        latest    c58ef9bfbb57   5 days ago   144MB

ㅇ 리눅스 브리지 확인 명령어
[root@localhost webdata]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242613f2156 no vethca119f4
virbr0 8000.525400a24e2c yes virbr0-nic

ㅇ 인터페이스별 ip확인 명령어
[root@localhost webdata]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b2:4b:09 brd ff:ff:ff:ff:ff:ff
    inet 192.168.32.129/24 brd 192.168.32.255 scope global noprefixroute dynamic ens33
       valid_lft 1597sec preferred_lft 1597sec
    inet6 fe80::e3df:acdb:2665:b9b3/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:a2:4e:2c brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:a2:4e:2c brd ff:ff:ff:ff:ff:ff
5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:61:3f:21:56 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:61ff:fe3f:2156/64 scope link 
       valid_lft forever preferred_lft forever
21: vethca119f4@if20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 16:90:70:ef:5f:e8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::1490:70ff:feef:5fe8/64 scope link 
       valid_lft forever preferred_lft forever

ㅇ docker ps -a
- 실행 상태의 컨테이너 상태 보기
  -a, --all             stop된 컨테이너까지 모두 보기
  -q, --quiet           컨테이너 ID만 표시
      --no-trunc        정보를 생략하지 않고 표시

[root@localhost webdata]# docker ps --no-trunc -q -a
9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff
d99a427d1c1982b97149f8c660c6c9c540ea2fa50f0111fdb6e88bc493ad93de
79065ea6ac74cbb60bb44e81f2575faf82ceb196624c10bce9dd50ba451ba081
6ccbf7837a4628b1ac8674c7ab76151441d5b1095f7791318cef3190ac0f5f54
65a8eb2f1827f1fccb38fbc6f3c5728be8ee273c689c5bd408b5ceb8494739b7
e4bc6d859c34230261111761232a0477fb9e9bc9afffee1fd54745911a790246
e635400312b526f6fc6be5d5db0811a264adf8741c4d4870eb1b92e8d5ebc9fa
b11b4b8e87cf6dcbc355cfd2aea48ff46b0296ebda5d27d7b1ab0ff07de585fc


ㅇ docker inspect [컨테이너명]
- 컨테이너 상세 정보 확인

[root@localhost webdata]# docker inspect 9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff
[
    {
        "Id": "9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff",
        "Created": "2022-05-16T12:46:31.92991461Z",
        "Path": "httpd-foreground",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 92187,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-05-16T12:46:32.681279154Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:c58ef9bfbb5789a9882cee610ba778b1368d21b513d6caf32e3075542e13fe81",
        "ResolvConfPath": "/var/lib/docker/containers/9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff/hostname",
        "HostsPath": "/var/lib/docker/containers/9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff/hosts",
        "LogPath": "/var/lib/docker/containers/9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff/9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff-json.log",
        "Name": "/vibrant_mcnulty",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/var/webdata:/usr/local/apache2/htdocs"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "80/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8080"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/ab80a9042f27614f935c79dd45bebaca84232feb6b40ae6d7e9ef83e7b64ca6a-init/diff:/var/lib/docker/overlay2/e673648aa5e04c86dff49892dff80e9fe7100e1deebfb5ec94bbd36468ae0d7d/diff:/var/lib/docker/overlay2/8511384abf66a44281983725d794d2aaf8a7df007da92600c162cf4fc4c7f7ef/diff:/var/lib/docker/overlay2/fe1cdc98ddbbf93118ac681df3987403c2e467238ddd0264c40d5513d0e7306e/diff:/var/lib/docker/overlay2/873dd40e901f58a7ad2e2ce6166c5b27e2a14709686b73356fec5762369e0be4/diff:/var/lib/docker/overlay2/746088e809e8922bcc9f8f1315043b454230247dff6314426177c23684e1194c/diff",
                "MergedDir": "/var/lib/docker/overlay2/ab80a9042f27614f935c79dd45bebaca84232feb6b40ae6d7e9ef83e7b64ca6a/merged",
                "UpperDir": "/var/lib/docker/overlay2/ab80a9042f27614f935c79dd45bebaca84232feb6b40ae6d7e9ef83e7b64ca6a/diff",
                "WorkDir": "/var/lib/docker/overlay2/ab80a9042f27614f935c79dd45bebaca84232feb6b40ae6d7e9ef83e7b64ca6a/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/var/webdata",
                "Destination": "/usr/local/apache2/htdocs",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "9ab08bee69df",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "HTTPD_PREFIX=/usr/local/apache2",
                "HTTPD_VERSION=2.4.53",
                "HTTPD_SHA256=d0bbd1121a57b5f2a6ff92d7b96f8050c5a45d3f14db118f64979d525858db63",
                "HTTPD_PATCHES="
            ],
            "Cmd": [
                "httpd-foreground"
            ],
            "Image": "httpd:2.4",
            "Volumes": null,
            "WorkingDir": "/usr/local/apache2",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {},
            "StopSignal": "SIGWINCH"
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "954c60335a3680950a19303a72a5ea728c565f28374e1605cd4da47c1c24d392",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8080"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "8080"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/954c60335a36",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "6dd4823947516e3dd20b4efc60c7ec1eac10aacf854ed274fc40041ed8f4f49a",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "9d900230fbfed7337d8f3ee3ed9f007aec0da7450c506d239bd25c3eac94e963",
                    "EndpointID": "6dd4823947516e3dd20b4efc60c7ec1eac10aacf854ed274fc40041ed8f4f49a",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

- docker inspect data_share | grep -i volumes
[root@localhost webdata]# docker inspect 9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff  | grep -i volumes
            "VolumesFrom": null,
            "Volumes": null,
[root@localhost webdata]# docker inspect 9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff  | grep -i /htdocs
                "/var/webdata:/usr/local/apache2/htdocs"
                "Destination": "/usr/local/apache2/htdocs",


ㅇ docker top [컨테이너명]
- 가동중인 컨테이너에서 프로세스를 확인.
[root@localhost webdata]# docker top 9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                92187               92168               0                   21:46               ?                   00:00:00            httpd -DFOREGROUND
33                  92218               92187               0                   21:46               ?                   00:00:00            httpd -DFOREGROUND
33                  92219               92187               0                   21:46               ?                   00:00:00            httpd -DFOREGROUND
33                  92220               92187               0                   21:46               ?                   00:00:00            httpd -DFOREGROUND


ㅇ docker container ls
- 모든 컨테이너는 컨테이너ID 정보

--all, -a : 실행중, 정지중 모두 포함하여 모든 컨테이너 표시
--filter, -f : 표시할 컨테이너 필터링 
--last, -n : 마지막으로 실행된 N건의 컨테이너만 표시
--latest, -l : 마지막으로 실행된 컨테이너만 표시
--no-trunc : 정보를 생략하지 않고 표시
--quiet, -q : 컨테이너 아이디만 표시
--size, -s : 파일 크기 표시
--format : 표시 포맷 지정 

[root@localhost webdata]# docker container ls --no-trunc -q -a
9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff
d99a427d1c1982b97149f8c660c6c9c540ea2fa50f0111fdb6e88bc493ad93de
79065ea6ac74cbb60bb44e81f2575faf82ceb196624c10bce9dd50ba451ba081
6ccbf7837a4628b1ac8674c7ab76151441d5b1095f7791318cef3190ac0f5f54
65a8eb2f1827f1fccb38fbc6f3c5728be8ee273c689c5bd408b5ceb8494739b7
e4bc6d859c34230261111761232a0477fb9e9bc9afffee1fd54745911a790246
e635400312b526f6fc6be5d5db0811a264adf8741c4d4870eb1b92e8d5ebc9fa
b11b4b8e87cf6dcbc355cfd2aea48ff46b0296ebda5d27d7b1ab0ff07de585fc


ㅇ docker port [ 컨테이너 ID]
- 가동중인 컨테이너에서 실행되고 있는 프로세스가 전송되는 포트 확인
[root@localhost webdata]# docker port 9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff
80/tcp -> 0.0.0.0:8080
80/tcp -> :::8080
컨테이너의 80번 포트 -> 호스트 80번 포트로 전송

ㅇ docker logs [컨테이너명]
- 가동중인 컨테이너 로그 확인

 

[root@localhost webdata]# docker logs 9ab08bee69df7e8eecb80591481d1c20aaa3c468e226b754a7cd7fb71310dfff
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon May 16 12:46:32.746618 2022] [mpm_event:notice] [pid 1:tid 140523366030656] AH00489: Apache/2.4.53 (Unix) configured -- resuming normal operations
[Mon May 16 12:46:32.747014 2022] [core:notice] [pid 1:tid 140523366030656] AH00094: Command line: 'httpd -D FOREGROUND'
172.17.0.1 - - [16/May/2022:12:47:54 +0000] "GET /inn.html HTTP/1.1" 200 -
172.17.0.1 - - [16/May/2022:12:48:11 +0000] "GET /inn.html HTTP/1.1" 200 19
172.17.0.1 - - [16/May/2022:13:23:41 +0000] "GET /inn.html HTTP/1.1" 304 -
172.17.0.1 - - [16/May/2022:13:23:41 +0000] "GET /inn.html HTTP/1.1" 304 -
172.17.0.1 - - [16/May/2022:13:23:42 +0000] "GET /inn.html HTTP/1.1" 304 -

 

ㅇ 기타 뭥밍


[root@localhost vulninsp]# ps -ef | grep 'docker'
root      85039      1  0 20:51 ?        00:00:02 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      87095  85039  0 21:15 ?        00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.2 -container-port 80
root      87099  85039  0 21:15 ?        00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.17.0.2 -container-port 80
[root@localhost vulninsp]# ps -ef | grep 'containerd'
root      85028      1  0 20:51 ?        00:00:00 /usr/bin/containerd
root      85039      1  0 20:51 ?        00:00:02 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      87111      1  0 21:15 ?        00:00:00 /usr/bin/containerd-shim-runc-v2 -namespace moby -id b11b4b8e87cf6dcbc355cfd2aea48ff46b0296ebda5d27d7b1ab0ff07de585fc -address /run/containerd/containerd.sock
root      87445  84580  0 21:17 pts/0    00:00:00 grep --color=auto containerd

반응형

'OS' 카테고리의 다른 글

nslookup  (0) 2015.08.08
Apache LogFormat 지시어  (0) 2015.07.13
Hot Link방지  (0) 2014.09.15
Crontab을 이용하여 일정 시간마다 로그 백업후 FTP 업로드  (0) 2014.09.15
crontab  (0) 2014.09.15
반응형