Free
& Open Source Rootkit and Malware Detection Tools
March 25, 2013
Article by Jay Turla
first published on infosecinstitute
Bài được đưa lên
Internet ngày: 25/03/2013
Lời
người dịch: Một tham khảo rất tốt cho các quản trị
viên hệ thống để thực hiện một số nhiệm vụ phòng
thủ mạng của đơn vị mình bằng việc sử dụng các
công cụ an ninh là các phần mềm tự do nguồn mở như
Chkrootkit, Rootkit Hunter, ClamAV,
BotHunter, avast!, NoePI,
Ourmon và Grep để
tìm ra các dạng phần mềm độc hại như sniffers,
rootkits, botnets, backdoor shells trong hệ thống mạng của
mình.
Nhiều phần mềm độc
hại dạng sniffers, rootkits, botnets, backdoor shells và các
dạng khác vẫn đang bùng nổ ngày nay, chúng được những
kẻ tấn công sử dụng sau khi thành công trong việc chui
vào một máy chủ nhất định hoặc một mạng
đang hoạt động để duy trì sự truy cập của chúng,
nâng quyền ưu tiên truy cập của chúng và gián điệp
những người sử dụng khác trong một mạng. Để bảo vệ
mạng hoặc máy chủ của chúng ta khỏi những thâm nhập
trái phép và thiệt hại xa hơn như vậy, có những công
cụ dò tìm là phần mềm tự do nguồn mở mà có thể
được triển khải và sử dụng như một phần của chiến
lược an ninh của
chúng ta. Chúng là bắt buộc khi máy chủ hoặc mạng của
chúng ta được thiết lập và chạy, đặc biệt nếu một
người sử dụng nhất định đang tải về một tệp mà
có khả năng là độc hại hoặc gây hại.
Ưu điểm của việc
sử dụng các công cụ bảo vệ là phần mềm tự do nguồn
mở là việc bạn rõ ràng không cần trả một xu nào và
các sách chỉ dẫn rất dễ dàng có được và hiểu được
vì các sách chỉ dẫn được đưa vào thường có tên là
README (hãy đọc tôi) và chắc chắn sẽ là RTFM (Hãu đọc
Sách chỉ dẫn …).
Đây là một số công
cụ có thể bạn muốn sử dụng:
A
lot of sniffers, rootkits, botnets, backdoor shells and malwares are
still on the wild today, which are used by malicious attackers after
successfully pawning a certain server or any live network
in order to maintain their access, elevate their access privilege,
and spy other users in a network. In order to protect our network or
server from such intrusions and further damage, there are free and
open source detection tools that can be deployed and used as part of
our security
strategy. They are mandatory when our server or network is up and
running, especially if a certain user is downloading a file which
could possibly be malicious or harmful.
The
advantage of using free and open source detection tools is that you
obviously don’t need to pay a single penny and that tutorials are
very easy to get and understand because manuals are included which
are usually named as README so be sure to RTFM (Read the F******
Manual).
Here
are some tools which could be of use to you guys
Chkrootkit
Chkrootkit
Chkrootkit
hoặc Check Rootkit là một chương trình hoặc công cụ
nguồn mở phổ biến được sử dụng để quét các
rootkits, botnet, phần mềm độc hại... trong máy chủ hoặc
hệ thống Unix/Linux của bạn. Nó được kiểm thử đầy
đủ trên: Linux 2.0.x, 2.2.x, 2.4.x, 2.6.x, and 3.x.x, FreeBSD
2.2.x, 3.x, 4.x, 5.x and 7.x, OpenBSD 2.x, 3.x and 4.x., NetBSD
1.6.x, Solaris 2.5.1, 2.6, 8.0 and 9.0, HP-UX 11, Tru64, BSDI và Mac
OS X. Công cụ này được cài đặt sẵn trong BackTrack 5
như các công cụ nghiên cứu pháp lý chống virus
(Anti-Virus Forensic Tools).
Để
cài đặt chkrootkit lên một phát tán dựa vào Ubuntu hoặc
Debian, bạn có thể chỉ cần gõ:
sudo
apt-get install chkrootkit.
Để
bắt đầu kiểm tra liệu có rootkits và các cửa hậu có
khả năng trong hệ thống của bạn hay không, hãy gõ lệnh:
sudo
chkrootkit.
Chkrootkit
or Check Rootkit is a common open source program or tool used for
scanning rootkits, botnets, malwares, etc. in your Unix/Linux server
or system. It is fully tested on: Linux 2.0.x, 2.2.x, 2.4.x, 2.6.x,
and 3.x.x, FreeBSD 2.2.x, 3.x, 4.x, 5.x and 7.x, OpenBSD 2.x, 3.x and
4.x., NetBSD 1.6.x, Solaris 2.5.1, 2.6, 8.0 and 9.0, HP-UX 11, Tru64,
BSDI and Mac OS X. This tool is pre-installed in BackTrack 5 under
Anti-Virus Forensic Tools.
To
install chkrootkit on a Ubuntu or Debian based distro, you can just
type :
sudo
apt-get install chkrootkit.
|
To
start checking for possible rootkits and backdoors in your system,
type the command:
sudo
chkrootkit.
|
Here
are other options you can use after issuing the command sudo
chkrootkit -h:
Đây
là những lựa chọn khác mà bạn có thể sử dụng sau
khi đưa ra lệnh sudo chkrootkit -h:
-h show the help and
exit
-V show version
information and exit
-l show available
tests and exit
-d debug
-q quiet mode
-x expert mode
-e exclude known
false positive files/dirs, quoted, space separated, READ WARNING IN
README
-r dir use dir as the
root directory
-p dir1:dir2:dirN
path for the external commands used by
chkrootkit
-n skip NFS mounted
dirs
Rootkit
Hunter
Trình săn Rootkit -
Rootkit Hunter
Rootkit hunter hoặc
rkhunter là một trình quét Rootkit có giấy phép nguồn mở
GPL tương tự như chkrootkit là cũng được cài đặt sẵn
trước trong BackTrack 5 theo Anti-Virus Forensic Tools. Công cụ
này quét để biết các rootkits, các cửa ậu và các khai
thác cục bộ bằng việc chạy các kiểm thử như: so sánh
hàm băm MD5, tìm kiếm các tệp mặc định được các
rootkit sử dụng, các quyền sai của các tệp được các
rootkit sử dụng, các quyền sai của các tệp cho các tệp
nhị phân, tìm kiếm các chuỗi khả nghi trong các module
LKM và KLD, tìm kiếm các tệp ẩn, và quét tùy ý trong văn
bản thô và các tệp nhị phân.
Để cài đặt
rkhunter lên một phát tán dựa vào Ubuntu hoặc Debian, bạn
có thể chỉ cần gõ:
Rootkit
hunter or rkhunter is an Open Source General Public License (GPL)
Rootkit Scanner similar to chkrootkit which is also pre-installed in
BackTrack 5 under Anti-Virus Forensic Tools. This tool scans for
rootkits, backdoors and local exploits by running tests like: MD5
hash compare, look for default files used by rootkits, wrong file
permissions for binaries, look for suspected strings in LKM and KLD
modules, look for hidden files, and optional scan within plaintext
and binary files.
To
install rkhunter on a Ubuntu or Debian based distro, you can just
type :
sudo apt-get install
rkhunter.
To start the scanning in
your file system, type the command:
sudo rkhunter –check.
And if you want check for
updates, issue the command:
sudo rkhunter
–update.
After
rkhunter has finished scanning your file system, all the results are
logged at /var/log/rkhunter.log.
Here
are other useful options for rkhunter as shown in the -h flag:
Sau khi rkhunter đã kết
thúc việc quét hệ thống tệp của bạn, tất cả các
kết quả được lưu ký trong /var/log/rkhunter.log.
Đây
là những lựa chọn hữu dụng khác cho rkhunter như được
chỉ ra trong cờ -h:
–append-log
Append to the logfile, do not overwrite
–bindir
… Use the specified command directories
-C, –config-check
Check the configuration file(s), then exit
–cs2, –color-set2
Use the second color set for output
–configfile
Use the specified configuration file
–dbdir
Use the specified database directory
–debug
Debug mode
–disable
[,...] Disable specific tests
–display-logfile
Display the logfile at the end
–enable
[,...] Enable specific tests
–hash {MD5 | SHA1 |
SHA224 | SHA256 | SHA384 | SHA512}
Use the specified file hash function
–list [tests |
languages | List the available test names, languages, checked
rootkits | perl] for rootkits, or perl module status, then exit
-l, –logfile [file]
Write to a logfile (Default is /var/log/rkhunter.log)
–noappend-log Do
not append to the logfile, overwrite it
–nocf Do not use
the configuration file entries for disabled tests (only valid with
–disable)
–nocolors Use black
and white output
–nolog Do not write
to a logfile
–nomow,
–no-mail-on-warning Do not send a message if warnings occur
–ns, –nosummary
Do not show the summary of check results
–novl,
–no-verbose-logging No verbose logging
–pkgmgr {RPM | DPKG
| BSD | Use the specified package manager to obtain or SOLARIS |
NONE} verify file property values. (Default is NONE)
–propupd [file |
directory | Update the entire file properties database, package]…
or just for the specified entries
-q, –quiet Quiet
mode
–rwo,
–report-warnings-only Show only warning messages
-r, –rootdir
Use the specified root directory
–sk, –skip-keypress
Don’t wait for a keypress after each test
–summary Show the
summary of system check result
–syslog
[facility.priority] Log the check start and finish times to syslog
–tmpdir
Use the specified temporary directory
–unlock
Unlock (remove) the lock file
–vl,
–verbose-logging Use verbose logging (on
by default)
-V, –version
Display the version number, then exit
–versioncheck Check
for latest version of program
-x, –autox
Automatically detect if X is in use
-X, –no-autox Do
not automatically detect if X is in useClamAV
ClamAV
ClamAV là một phần
mềm chống virus nguồn mở nổi tiếng trong Linux. Nó là
phần mềm chống virus nổi tiếng nhất trong Linux mà có
một phiên bản giao diện đồ họa cho người sử dụng
GUI bây giờ được thiết kế cho việc dò tìm các Trojan,
các virus, phần mềm độc hại và các mối đe dọa độc
hại các một cách dễ dàng hơn. ClamAV cũng có thể được
cài đặt trong Windows, BSD, Solaris và thậm chí cả Mac OS
X. Nhà nghiên cứu về an ninh Dejan
Lukan có một sách
chỉ dẫn chi tiết ở đây trên trang Các tài nguyên
Nghiên cứu của InfoSec (InfoSec Institute Resources) về cách
để cài đặt ClamAV và cách làm việc với giao diện dòng
lệnh.
ClamAV
is a known open source anti-virus software in Linux. It is the most
famous Linux anti-virus which has a GUI version now designed for
detecting Trojans, viruses, malware and other malicious threats
easier. ClamAV can also be installed in Windows, BSD, Solaris and
even in MacOSX. Fellow security researcher Dejan
Lukan has a detailed tutorial
here in InfoSec Institute Resources page on how to install ClamAV and
how to work with its command line interface.
BotHunter
Trình săn lùng
các Botnet - BotHunter
BotHunter là một
hệ thống dự báo các botnet dựa vào mạng, theo dõi dòng
chảy giao tiếp 2 chiều giữa máy tính cá nhân của bạn
và Internet. Nó được
Phòng thí nghiệm Khoa học Máy tính (Computer
Science Laboratory), SRI International phát triển và sẵn
sàng cho Linux và Unix, nhưng bây giờ chúng đã phát hành
một Phiên bản Kiểm thử Riêng rẽ và một Phiên bản
sớm cho Windows.
Bạn
có thể tải về phần mềm này ở
đây. Bạn cũng có thể kiểm tra các trình bổ sung của
nó được gọi là BotHunter2Web.pl.
Trình bổ sung này chuyển các hồ sơ lây
nhiễm của BotHunter thành các trang web, có thể thấy được
thông qua trình duyệt của bạn một cách trực tiếp hoặc
thông qua máy chủ web riêng. Các hồ sơ lây nhiễm của
BotHunter thường được đặt trong
~cta-bh/BotHunter/LIVEPIPE/botHunterResults.txt.
Sử
dụng ví dụ BotHunter2Web.pl:
BotHunter
is a network-based botnet diagnosis system which tracks the two-way
communication flows between your personal computer and the Internet.
It is developed and
maintained by the Computer
Science Laboratory, SRI International and available for Linux and
Unix but now they have released a Private Test Release and a
Pre-Release for Windows.
You
can download this software here.
You could also check its addon which is called BotHunter2Web.pl.
This addon converts
BotHunter infection profiles into web pages, which can be viewed
through your browser directly or via private webserver. BotHunter
infection profiles are typically located in
~cta-bh/BotHunter/LIVEPIPE/botHunterResults.txt.
Sample
Usage for BotHunter2Web.pl:
perl BotHunter2Web.pl
[-date YYYY-MM-DD] -i sampleresults.txt
Additional Options and
Switches:
-h — help message
-date YYYY-MM-DD —
[or TODAY, YESTERDAY]. Blank = build one massive table
-i FILE — BotHunter
profile file (e.g., botHunterResults.txt)
-wl
— A list of victim IPs you wish to surpress from the HTML table
-outdir
— Output Directory(default = current dir)
-MaxEvents N — Max
number of event entries per row
-MaxCC N — Max
number of CC entries per row
-lookup — Perform
nslookup on victim IP
avast!
Linux Home Edition
avast!
Linux Home Edition is an anti-virus engine offered free of charge but
only for home and not for commercial use. It includes a command line
scanner and based on my experience it detects some of the Perl IRC
bots I have been collecting like w3tw0rk’s modified IRC (Internet
Relay Chat) bot (originally made by Pitbul) that contains malicious
functions like udpflood & tcpflood functions and allows its
master or bot controller to execute arbitrary commands with the use
of the system() function for Perl.
You
can download this antivirus software here.
avast! Phiên bản
dành cho Linux ở nhà (Linux Home Edition)
avast! Linux Home Edition
là một động cơ chống virus được đưa ra miễn phí
những chỉ cho sử dụng ở nhà chứ không cho sử dụng
thương mại. Nó bao gồm một trình quét dòng lệnh và
theo kinh nghiệm của tôi nó dò tìm một số bot Perl IRC mà
tôi đã và đang thu thập như IRC (Internet Relay Chat) bot
được sửa đổi của w3tw0rk mà có chứa các chức năng
độc hại như các chức năng udpflood & tcpflood và cho
phép máy chủ hoặc trình kiểm soát của nó thực thi các
lệnh tùy ý bằng việc sử dụng chức năng system() cho
Perl.
Bạn có thể tải về
phần mềm chống virus này ở
đây.
NeoPI
NeoPI
is a Python script which is useful for detecting obfuscated and
encrypted content within text or script files. The
intended purpose of NeoPI is to aid in the detection of hidden web
shell
code. The
development focus of NeoPI was creating a tool that could be used in
conjunction with other established detection methods such as Linux
Malware Detect or traditional signature or keyword based searches. It
is a cross platform script for Windows and Linux. Not only does it
aid users to detect possible backdoor shells but also malicious
scripts like IRC botnets, udpflood shells, vulnerable scripts, and
other malicious stuffs.
To
use this Python script, just checkout the code in its official github
site and navigate through its directory:
NoePI
NeoPI là một script
Python hữu dụng cho việc dò tìm nội dung đen tối và
được mã hóa trng các tệp văn bản hoặc script. Mục
đích có ý định của NeoPI là để giúp dò tìm các mã
shell web ẩn. Trọng
tâm phát triển của NeoPI là tạo ra một công cụ có thể
được sử dụng trong sự kết hợp với các phương pháp
dò tìm nổi tiếng khác như Dò tìm Phần mềm độc hại
của Linux (Linux Malware Detect) hoặc chữ ký hoặc từ khóa
truyền thống dựa vào các nghiên cứu. Nó
là một script liên nền tảng cho Windows và Linux. Nó không
chỉ giúp những người sử dụng dò tìm ra các shell cửa
hậu có khả năng, mà còn cả các script độc hại như
các botnet IRC, các udpflood shells, các script có khả năng bị
tổn thương và các loại độc hại khác.
Để
sử dụng script Python, hãy kiểm tra mã trên site chính thức
của github và di chuyển qua thư mục của nó:
git clone
https://github.com/Neohapsis/NeoPI.git
cd NeoPI
Then
we use the -h flag to see the options for running the script:
Sau đó chúng ta sử
dụng cờ -h để xem các lựa chọn cho việc chạy script:
shipcode@projectX:/opt/NeoPI$
sudo ./neopi.py -h
Usage: neopi.py
[options] regex
>
Options:
–version
show program’s
version number and exit
-h, –help
show this help
message and exit
-c FILECSV,
–csv=FILECSV generate CSV outfile
-a, –all
Run all (useful)
tests [Entropy, Longest Word, IC, Signature]
-z, –zlib
Run compression Test
-e, –entropy
Run entropy Test
-E, –eval
Run signature test
for the eval
-l, –longestword
Run longest word test
-i, –ic Run
IC test
-s, –signature
Run signature test
-S, –supersignature
Run SUPER-signature
test
-A, –auto
Run auto file
extension tests
-u, –unicode
Skip over
unicode-y/UTF’y files
Dựa vào các lựa
chọn ở trên, nếu chúng ta muốn chạy tất cả các kiểm
thử như Entropy, Longest Word, IC, Signature và chạy
các kiểm thử mở rộng tệp chạy tự động trong thư
mục /var/www, thì chúng ta có thể sẽ đưa ra lệnh:
Based
on the options above, if we want to run all tests like Entropy,
Longest Word, IC, Signature and
run auto file extension tests in the /var/www
directory, we can just
issue the command:
sudo ./neopi.py -a -A
/var/www
Nếu bạn muốn tạo
một CSV outfile cho các tham chiếu trong tương lai, chúng ta
có thể sử dụng lệnh:
If
you want to generate a CSV outfile for future references, we can use
the command:
sudo ./neopi.py -C
outfile.csv -a -A /var/www
Hai nhà nghiên cứu an
ninh (Scott Behrens và Ben Hagen) tại InfoSec Institute và các
lập trình viên gốc ban đầu của dự án NeoPI cũng đã
viết một sách chỉ dẫn chi tiết có đầu đề 'Dò
tìm Web Shell bằng việc sử dụng NeoPI', nó giải thích
nội chuyển lực, từ dài nhất, IC, chữ ký và những
kiểm thử hữu dụng khác.
Two
security researchers (Scott Behrens and Ben Hagen) here in InfoSec
Institute and the original developers of the NeoPI project have also
written a detailed tutorial entitled ‘Web
Shell Detection Using NeoPI‘ which explains Entropy, Longest
Word, IC, Signature and other useful tests.
Ourmon
Ourmon
is a Unix-based open source program and a common network packet
sniffing tool in FreeBSD but it can also be used for detecting
botnets as explained by Ashis Dash in his article entitled ‘Botnet
detection tool: Ourmon‘ in Clubhack Magazine or Chmag.
Ourmon
Ourmon là một chương
trình nguồn mở dựa vào Unix và một công cụ ngửi gói
mạng phổ biến trong FreeBSD nhưng nó cũng có thể được
sử dụng cho việc dò tìm các botnet như được Ashis Dash
giải thích trong bài báo của ông với đầu đề 'Công
cụ dò tìm Botnet: Ourmon' trên Tạp chí Clubhack hoặc
Chmag.
Grep
And
the last but not the least, we have the grep command which is a
powerful command-line tool in Unix and Linux. It is used for
searching and probing data sets for lines that matches a regular
expression. As a short history, this utility was coded by Ken
Thompson on March 3, 1973 for Unix. Nowadays, Grep is known for
detecting and searching for pesky backdoor shells and malicious
scripts too.
Grep
can also be used for detecting vulnerable scripts (e.g the PHP
function shell_exec which is a risky PHP function that allows remote
code execution or command execution). We can use the grep command to
search for the shell_exec () function as our advantage in our
/var/www
directory to check for possible PHP files that are vulnerable to RCE
or command injection. Here is the command:
Grep
Và cuối cùng, chúng
ta có lệnh grep, là một công cụ dòng lệnh mạnh trong
Unix và Linux. Nó được sử dụng cho việc tìm kiếm và
kiểm thử các tập hợp dữ liệu cho các dòng mà khớp
với một biểu thức thông thường. Như một lịch sử
ngắn ngủi, tiện ích này từng được Ken Thmpson viết mã
hôm 03/03/1973 cho Unix. Bây giờ, Grep nổi tiếng cho việc
dò tìm và tìm kiếm các shell cửa hậu phiền hà và các
script độc hại.
Grep cũng có thể được
sử dụng cho việc dò tìm các script có khả năng bị tổn
thương (như hàm shell_exec của PHP, nó là một chức năng
PHP mạo hiểm mà cho phép thực thi mã hoặc thực thi lệnh
ở xa). Chúng ta có thể sử dụng lệnh grep để tìm kiếm
các hàm shell_exec () khi ưu thế của chúng ta trong thư mục
/var/www để kiểm tra các tệp PHP có khả năng bị
tổn thương đối với RCE hoặc sự tiêm lệnh. Đây là
lệnh đó:
grep -Rn “shell_exec
*( ” /var/www
Backdoor
shells commonly use the shell_exec function for executing arbitrary
commands. Aaside from shell_exec function, most PHP backdoor shells
also use functions like base64_decode, eval, phpinfo, system,
php_uname, chmod, fopen, fclose, readfile, edoced_46esab, and
passthru.
Thus
you could also easily grep these functions:
Các shell cửa hậu
thường sử dụng hàm shell_exec cho việc thực thi các lệnh
tùy ý. Ngoài hàm shell_exect ra, hầu hết các shell cửa hậu
của PHP cũng sử dụng các hàm như base64_decode, eval,
phpinfo, system, php_uname, chmod, fopen, fclose, readfile,
edoced_46esab và passthru.
Vì thế bạn cũng có
thể dễ dàng grep các hàm đó:
grep -Rn “shell_exec
*(” /var/www
grep -Rn
“base64_decode *(” /var/www
grep -Rn “phpinfo
*(” /var/www
grep -Rn “system
*(” /var/www
grep -Rn “php_uname
*(” /var/www
grep -Rn “chmod *(”
/var/www
grep -Rn “fopen *(”
/var/www
grep -Rn “fclose
*(” /var/www
grep -Rn “readfile
*(” /var/www
grep -Rn
“edoced_46esab *(” /var/www
grep -Rn “eval *(”
/var/www
grep -Rn “passthru
*(” /var/www
In
my recent researches, most Perl IRC botnets use common Perl functions
like shell, system, and tcp so we can actually grep these functions
just like hunting or detecting PHP backdoor shells. Thus, if we want
to scan our /var/www directory again then we could just issue the
commands below:
Trong các nghiên cứu
gần đây của tôi, hầu hết các botnet Perl IRC sử dụng
các hàm Perl phổ biến như shell, system và tcp sao cho chúng
ta có thể thực sự grep các hàm đó hệt như việc đi
săn hoặc dò tìm các shell cửa hậu PHP. Vì thế, nếu
chúng ta muốn quét thư mục /var/www của chúng ta một lần
nữa thì chúng ta có thể chỉ cần đưa ra các lệnh bên
dưới:
grep -Rn “shell *(”
/var/www
grep -Rn “tcp *(”
/var/www
grep -Rn “system
*(” /var/www
Grep
is such a good tool for manual detection and forensic analysis.
Grep là một công cụ
tốt như vậy cho sự dò tìm bằng tay và phân tích pháp
lý.
References:
Các tài liệu
tham khảo:
http://www.cyberciti.biz/faq/howto-check-linux-rootkist-with-detectors-software/https://github.com/Neohapsis/NeoPIhttp://www.bothunter.net/bothunter2web.htmlhttp://resources.infosecinstitute.com/open-source-antivirus-clamav/http://pentestlab.org/hunting-malicious-perl-irc-bots/http://blog.rootcon.org/2012/04/simple-kung-fu-grep-for-finding-common.htmlhttp://resources.infosecinstitute.com/web-shell-detection/
Dịch: Lê Trung Nghĩa
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.