[FTZ] training5

training5에서는 해킹에서 가장 중요한 것을 언급하며 시작합니다. 해킹에서 가장 중요한 것은 ‘정보’라고 하는군요. 이번 포스팅에서는 해킹을 시도하려는 서버 정보를 수집하는 방법을 작성하겠습니다.

whoami

자신의 정보를 수집하는 명령어입니다. 프롬프트에 whoami명령어를 입력하면 trainer5라며 자신의 접속 ID가 출력됩니다.

1
2
[trainer5@ftz trainer5]$ whoami
trainer5

id

id명령 또한 whoami명령어처럼 자신의 정보를 출력합니다. 그러나 조금 더 자세한 정보가 출력됩니다.

1
2
[trainer5@ftz trainer5]$ id
uid=2005(trainer5) gid=2005(trainer5) groups=2005(trainer5)

위의 정보를 분석하기 위해선 리눅스 권한을 알아야 합니다. training1에서도 언급됐었죠?

/etc/passwd

training4에서 살펴본 passwd파일입니다. 다시 한 번 떠올려보면, 이 파일에는 사용자의 간단한 정보가 존재한다고 했습니다.

파일 내용을 출력하는 cat명령으로 해당 파일에 무슨 내용이 기록되어 있는지 확인해봅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[trainer5@ftz trainer5]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/bin/bash
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
webalizer:x:67:67:Webalizer:/var/www/html/usage:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
guest:x:1000:1000::/home/guest:/bin/bash
trainer1:x:2001:2001:Trainer 1:/home/trainer1:/home/trainer1/sh
trainer2:x:2002:2002:Trainer 2:/home/trainer2:/home/trainer2/sh
trainer3:x:2003:2003:Trainer 3:/home/trainer3:/home/trainer3/sh
trainer4:x:2004:2004:Trainer 4:/home/trainer4:/home/trainer4/sh
trainer5:x:2005:2005:Trainer 5:/home/trainer5:/home/trainer5/sh
trainer6:x:2006:2006:Trainer 6:/home/trainer6:/home/trainer6/sh
trainer7:x:2007:2007:Trainer 7:/home/trainer7:/home/trainer7/sh
trainer8:x:2008:2008:Trainer 8:/home/trainer8:/home/trainer8/sh
trainer9:x:2009:2009:Trainer 9:/home/trainer9:/home/trainer9/sh
trainer10:x:2010:2010:Trainer 10:/home/trainer10:/home/trainer10/sh
level1:x:3001:3001:Level 1:/home/level1:/bin/bash
level2:x:3002:3002:Level 2:/home/level2:/bin/bash
level3:x:3003:3003:Level 3:/home/level3:/bin/bash
level4:x:3004:3004:Level 4:/home/level4:/bin/bash
level5:x:3005:3005:Level 5:/home/level5:/bin/bash
level6:x:3006:3006:Level 6:/home/level6:/bin/bash
level7:x:3007:3007:Level 7:/home/level7:/bin/bash
level8:x:3008:3008:Level 8:/home/level8:/bin/bash
level9:x:3009:3009:Level 9:/home/level9:/bin/bash
level10:x:3010:3010:Level 10:/home/level10:/bin/bash
level11:x:3091:3091::/home/level11:/bin/bash
level12:x:3092:3092::/home/level12:/bin/bash
level13:x:3093:3093::/home/level13:/bin/bash
level14:x:3094:3094::/home/level14:/bin/bash
level15:x:3095:3095::/home/level15:/bin/bash
level16:x:3096:3096::/home/level16:/bin/bash
level17:x:3097:3097::/home/level17:/bin/bash
level18:x:3098:3098::/home/level18:/bin/bash
level19:x:3099:3099::/home/level19:/bin/bash
level20:x:3100:3100::/home/level20:/bin/bash
clear:x:3101:3101::/home/clear:/bin/bash

어마어마한 양의 내용이 출력됐네요. 이번 트레이닝에서는 가장 왼쪽이 유저 ID라는 것만 확인하고, 바로 다음 트레이닝에서 좀 더 자세히 분석해보도록 합시다.

커널(kernel)

커널은 리눅스의 심장 역할을 하는 파일입니다. 커널 버전에 따라 리눅스의 성능도 차이가 납니다.

같은 버전의 리눅스일지라도 커널 버전이 높다면, 속도도 더욱 빨라지고, 안전성도 높아집니다. 또한 커널을 이용한 해킹도 많기 때문에 서버에 접속한 상태에서 정보를 얻을 때 가장 먼저 하는 것이 커널 버전을 확인하는 것입니다. uname -a 명령어를 입력해 현재 FTZ의 서버 커널 버전을 확인할 수 있습니다.

1
2
[trainer5@ftz trainer5]$ uname -a
Linux ftz.hackerschool.org 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux

리눅스 커널의 취약점으로 많은 서버의 root권한을 획득할 수 있다고 합니다.

Tip: root 권한이란 리눅스나 유닉스에서 모든 파일을 관리하는 관리자 권한을 의미합니다. 리눅스에서는 여러 사용자가 동시에 작업하기 때문에, 자기 자신에게 권한이 부여된 파일만 제어할 수 있지만, root 권한을 가진 사람은 어떤 권한에도 구속받지 않습니다.

OS

리눅스 커널이 같더라도 다양한 종류의 OS가 존재할 수 있습니다. 이 OS들은 큰 차이점은 없지만, 설치된 패키지의 종류가 다릅니다.

Tip: 어떤 프로그램이 실행되기 위해 존재하는 부속 파일들을 합쳐 패키지라고 합니다.

cat /etc/*release명령어를 입력해 OS버전을 확인해봅니다.

1
2
[trainer5@ftz trainer5]$ cat /etc/*release
Red Hat Linux release 9 (Shrike)

여담으로 레드햇 리눅스 현재 지원이 멈춘 상태입니다. 레드햇 리눅스가 궁금하신 분들을 다음 링크를 확인해보세요.(참고: 레드햇 리눅스의 역사)

패키지

패키지는 이미 위에서 설명했습니다. 패키지들의 버전 또한 해킹하는데에 중요한 역할을 합니다.

아주 많은 패키지들이 설치되어 있습니다. 전부 다 확인하실 필요는 없습니다.

CPU

CPU 정보 또한 해킹하는데 도움이 될 수 있습니다.

cat /proc/cpuinfo명령어로 CPU정보를 살펴봅시다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[trainer5@ftz trainer5]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 14
model name : Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
stepping : 9
cpu MHz : 2902.928
cache size : 0 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss lm
bogomips : 5780.27

위와 같이 서버 컴퓨터의 CPU 사양이 출력됩니다.

FTZ training5 정리글을 마칩니다.



Author

Jaeyun Cha

Posted on

2020-01-06

Updated on

2023-04-11

Licensed under

댓글