Infomation

[리눅스 취약점 점검] Linux Exploit Suggester

DarkSoul.Story 2013. 12. 31. 23:02
반응형

1. 개요

 

Linux Exploit Suggester는 펄언어로 만들어진 리눅스 운영체제의 취약점을 점검하는 스크립트이다. Linux Exploit Suggester는 리눅스 운영체제의 커널 번호를 기준으로 Exploit 목록을 반환 한다. 

 

2. 테스트 환경

 

 테스트 OS : Kali Linux 1.0.5 - 커널 3.7-trunk-686-pae

 

3. 다운로드 및 사용

 

Linux Exploit Suggester 다운로드

 

Linux Exploit Suggester는 아래와 같이 다운로드 받은 후 압축을 풀어준다.

 

 # wget https://github.com/PenturaLabs/Linux_Exploit_Suggester/archive/master.zip

 



 

 

 # unzip master.zip 

 

 

 

Linux Exploit Suggester 사용

 

Linux Exploit Suggester는 아래와 같이 사용한다. 

root@DarkSoul-Kali:~/Linux_Exploit_Suggester-master# ./Linux_Exploit_Suggester.pl 

 

Linux Exploit Suggester가 리눅스 운영체제의 커널 번호를 확인하면, 아래와 같이 점검 대상 리눅스 운영체제에 사용가능한 익스플로잇 정보 (익스플로잇 내용 및 해당 익스플로잇 소스코드) 를 출력해준다.  

 




 

만약 커널 번호를 수동으로 입력하고자 한다면 [-k] 옵션을 적용 후 커널 번호를 입력하면 된다.

root@DarkSoul-Kali:~/Linux_Exploit_Suggester-master# ./Linux_Exploit_Suggester.pl -k 2.6.14

 




 

4. 소스코드 
 
Linux Exploit Suggester의 소스코드를 잠시 살펴 보자.  아래의 소스코드는 취약점 점검 대상 리눅스 운영체제의 커널 번호를 확인하는 소스코드로, [uname -r] 명령어와 옵션을 사용하여 커널 번호를 확인한다.
 
50 sub get_kernel {
51     my $khost = '';
52
53     if ( exists $opts{k} ) {
54         $khost = $opts{k};
55     }
56     else {
57         $khost = `uname -r |cut -d"-" -f1`;
58         chomp $khost;
59     }
60
61     # partial kernels might be provided by the user,
62     # such as '2.4' or '2.6.'
63     my $is_partial = $khost =~ /^\d+\.\d+\.\d/ ? 0 : 1;
64     if ( $is_partial and substr($khost,-1) ne '.' ) {
65         $khost .= '.';
66     }
67     return ( $khost, $is_partial );
68 }

 

아래 소스코드는 리눅스 운영체제의 커널 번호들과 사용가능한 익스플로잇 정보들이 나열되어 있어 앞서 확인한 커널번호와 매칭이 되는 번호가 있으면 해당 내용을 출력해준다.

 

84 sub get_exploits {
85   return (
86     'w00t' => {
87         vuln => [
88             '2.4.10', '2.4.16', '2.4.17', '2.4.18',
89             '2.4.19', '2.4.20', '2.4.21',
90         ]
91     },
92     'brk' => {
93         vuln => [ '2.4.10', '2.4.18', '2.4.19', '2.4.20', '2.4.21', 2.4.22' ],
94     },
95     'ave' => { vuln => [ '2.4.19', '2.4.20' ] },
96
97     'elflbl' => {
98         vuln => ['2.4.29'],
99         mil  => 'http://www.exploit-db.com/exploits/744/',
100     },
101
102     'elfdump'      => { vuln => ['2.4.27'] },
103     'elfcd'        => { vuln => ['2.6.12'] },
104     'expand_stack' => { vuln => ['2.4.29'] },
105
106     'h00lyshit' => {
107         vuln => [
108             '2.6.8',  '2.6.10', '2.6.11', '2.6.12',
109             '2.6.13', '2.6.14', '2.6.15', '2.6.16',
110         ],
111         cve => '2006-3626',
112         mil => 'http://www.exploit-db.com/exploits/2013/',
113     },
114
115     'kdump' => { vuln => ['2.6.13'] },
116     'km2'   => { vuln => [ '2.4.18', '2.4.22' ] },
117     'krad' =>
118       { vuln => [ '2.6.5', '2.6.7', '2.6.8', '2.6.9', '2.6.10', '2.6.11' ] },
119
120     'krad3' => {
121         vuln => [ '2.6.5', '2.6.7', '2.6.8', '2.6.9', '2.6.10', '2.6.11' ],
122         mil => 'http://exploit-db.com/exploits/1397',
123     },
124
125     'local26' => { vuln => ['2.6.13'] },
126     'loko'    => { vuln => [ '2.4.22', '2.4.23', '2.4.24' ] },
127
128     'mremap_pte' => {
129         vuln => [ '2.4.20', '2.2.24', '2.4.25', '2.4.26', '2.4.27' ],
130         mil => 'http://www.exploit-db.com/exploits/160/',
131     },
132

 

| 참고

https://github.com/PenturaLabs/Linux_Exploit_Suggester

반응형