파일내용확인실무 6편: more에서 쉘명령어 실행
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,147 조회
- 0 추천
- 목록
본문
파일내용확인실무 6편: more에서 쉘명령어 실행
more명령어상태를 빠져나가지 않고 more명령어가 실행중인 상태에서 원하는 쉘명령어를 실행할 수도 있다.
한때는 root소유의 SetUID로 설정된 more명령어 때문에 가끔씩 해킹의 수단으로도 사용되었던 방법이다.
즉, more명령어 실행된 상태에서 리눅스 명령어를 실행하려면 다음과 같이 하면 된다.
!쉘명령어
more명령어로 EXAMPLE이라는 파일을 실행하였다.
여기서는 가장 기본적인 명령어인 “ls -l /home/bible”이라는 명령어를 수행한 예를 보인 것이다.
[root@sulinux ~]#more EXAMPLE Writing scripts for Midnight Commander's external vfs
IMPORTANT NOTE: There may be some bugs left in extfs. Enjoy.
Starting with version 3.1, the Midnight Commander comes with so called extfs, which is one of the virtual filesystems. This system makes it possible to create new virtual filesystems for the GNU MC very easily.
Such work has two basic steps:
Editing $(libdir)/extfs/extfs.ini. Creating a shell script/program to handle requests. (Note: $(libdir) should be substituted for actual libdir path stored when configured or compiled, like /usr/local/lib/mc or /usr/lib/mc).
The first one is very easy: You assign a vfs suffix. For example, if you have .zip file, and would like to see what's inside it, path will be
!cat /etc/passwd
|
위의 예에서 more명령어 상태에서 쉘명령어를 실행하기 위하여 “!cat /etc/passwd”라고 입력한 후에 Enter키를 입력하였다.
!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:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin avahi:x:70:70:Avahi daemon:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin nscd:x:28:28:NSCD Daemon:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/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 named:x:25:25:Named:/var/named:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin pcap:x:77:77::/var/arpwatch:/sbin/nologin distcache:x:94:94:Distcache:/:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin sspark:x:500:500:ParkSungSoo:/home/sspark:/bin/bash sulinux:x:501:501::/home/sulinux:/bin/bash bible:x:502:502:BIBLE:/home/bible:/bin/bash ------------------------ --More--(27%) |
그리고 다음은 root패스워드를 변경한 것으로서 more가 실행된 상태에서 “!passwd root”를 실행하여 root패스워드를 변경한 것이다.
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin pcap:x:77:77::/var/arpwatch:/sbin/nologin distcache:x:94:94:Distcache:/:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin sspark:x:500:500:ParkSungSoo:/home/sspark:/bin/bash sulinux:x:501:501::/home/sulinux:/bin/bash bible:x:502:502:BIBLE:/home/bible:/bin/bash ------------------------ !passwd root
Changing password for user root. New UNIX password: ******** BAD PASSWORD: it does not contain enough DIFFERENT characters Retype new UNIX password: ******** passwd: all authentication tokens updated successfully. ------------------------ --More--(27%) |
물론 현재 root사용자로 실행하였기 때문에 root패스워드를 변경할 수 있었다.
일반사용자가 more를 실행한 상태에서 root패스워드를 변경하는 것은 불가능하다.
하지만 more의 이전버전에서는 more명령어에 자체에 root소유의 SetUID가 설정되어 있었다.
이런 상태에서는 일반사용자가 root의 패스워드를 변경하는 것 뿐아니라 root가 할 수 있는 모든 작업들을 할 수가 있었다.
이것이 일종의 해킹수단이 되기도 하였다.
물론 현재는 패치되어 이런 해킹수단은 사용할 수 없다.
관련자료
-
이전
-
다음