본문 바로가기
Infomation

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

by DarkSoul.Story 2013. 12. 31.
반응형

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

반응형