Thursday, April 20, 2017

Fedora 25 and fix python modules.

This tutorial is a simple way to fix your python modules under Fedora distro.
I used Fedora 25 and python 2.7.13 version.
First try to use this command:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U
This command will try to update based by:
  • to skip "-e" package definitions;
  • the newer versions of pip allow you to list outdated python modules;
  • added -n1 to xargs, prevents stopping everything if updating one python module fails;
If you got this error about Python.h error:
...fatal error: Python.h...
Use this command to install the development library of Python:
[root@localhost mythcat]# dnf install python-devel.x86_64 python-devel.i686
Try to install also the devel libs for each error include.
Another example is this lib: opensslv.h
So install this:
[root@localhost mythcat]# dnf install openssl-devel.x86_64 
Last metadata expiration check: 1:58:33 ago on Thu Apr 20 18:52:10 2017.
Dependencies resolved.
 Package              Arch          Version                Repository      Size
 openssl-devel        x86_64        1:1.0.2k-1.fc25        updates        1.5 M

Transaction Summary
Install  1 Package

Total download size: 1.5 M
Installed size: 3.1 M
Is this ok [y/N]: y
Downloading Packages:
openssl-devel-1.0.2k-1.fc25.x86_64.rpm          580 kB/s | 1.5 MB     00:02    
Total                                           394 kB/s | 1.5 MB     00:03     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Installing  : openssl-devel-1:1.0.2k-1.fc25.x86_64                        1/1 
  Verifying   : openssl-devel-1:1.0.2k-1.fc25.x86_64                        1/1 

  openssl-devel.x86_64 1:1.0.2k-1.fc25                                          

Try to run again the first command:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U
See the first result of list outdated python modules:
[root@localhost mythcat]# pip list --outdated --format=freeze
After this steps the result is this:
[root@localhost mythcat]# pip list --outdated --format=freeze
I will fix this next time.

Tuesday, April 18, 2017

The GUI for Clam antivirus - clamtk .

Today I will show you how to use a GUI for clam antivirus named clamtk.
The ClamTk is a graphical front-end for ClamAV using Perl and Gtk libraries.
[root@localhost mythcat]# dnf search clamtk
Last metadata expiration check: 1:24:49 ago on Tue Apr 18 17:01:00 2017.
============================= N/S Matched: clamtk ==============================
clamtk.noarch : Easy to use graphical user interface for Clam anti virus
First, you need to install it, see all packages need by this GUI:
[root@localhost mythcat]# dnf install clamtk.noarch 
Last metadata expiration check: 1:31:00 ago on Tue Apr 18 17:01:00 2017.
Dependencies resolved.
 Package                     Arch       Version               Repository   Size
 clamtk                      noarch     5.24-1.fc25           updates     218 k
 perl-Cairo                  x86_64     1.106-3.fc25          fedora      125 k
 perl-File-Listing           noarch     6.04-13.fc25          fedora       17 k
 perl-Glib                   x86_64     1.321-2.fc25          fedora      364 k
 perl-Gtk2                   x86_64     1.2498-3.fc25         fedora      1.8 M
 perl-HTTP-Cookies           noarch     6.01-13.fc25          fedora       29 k
 perl-HTTP-Negotiate         noarch     6.01-13.fc25          fedora       21 k
 perl-JSON                   noarch     2.90-7.fc25           fedora       98 k
 perl-LWP-Protocol-https     noarch     6.07-1.fc25           updates      16 k
 perl-Locale-gettext         x86_64     1.07-4.fc25           fedora       26 k
 perl-NTLM                   noarch     1.09-13.fc25          fedora       23 k
 perl-Net-HTTP               noarch     6.13-1.fc25           updates      41 k
 perl-Pango                  x86_64     1.227-3.fc25          fedora      190 k
 perl-Test-Simple            noarch     1.302062-1.fc25       fedora      410 k
 perl-Text-CSV               noarch     1.91-4.fc25           updates     103 k
 perl-Time-Piece             x86_64     1.31-385.fc25         updates      88 k
 perl-WWW-RobotRules         noarch     6.02-14.fc25          fedora       22 k
 perl-libwww-perl            noarch     6.15-3.fc25           fedora      208 k

Transaction Summary
Install  18 Packages

Total download size: 3.7 M
Installed size: 10 M
Is this ok [y/N]: y
Downloading Packages:
(1/18): clamtk-5.24-1.fc25.noarch.rpm           517 kB/s | 218 kB     00:00    
(2/18): perl-Glib-1.321-2.fc25.x86_64.rpm       662 kB/s | 364 kB     00:00    
(3/18): perl-Locale-gettext-1.07-4.fc25.x86_64. 296 kB/s |  26 kB     00:00    
(4/18): perl-Gtk2-1.2498-3.fc25.x86_64.rpm      2.3 MB/s | 1.8 MB     00:00    
(5/18): perl-libwww-perl-6.15-3.fc25.noarch.rpm 1.4 MB/s | 208 kB     00:00    
(6/18): perl-JSON-2.90-7.fc25.noarch.rpm        181 kB/s |  98 kB     00:00    
(7/18): perl-Cairo-1.106-3.fc25.x86_64.rpm      439 kB/s | 125 kB     00:00    
(8/18): perl-Pango-1.227-3.fc25.x86_64.rpm      1.7 MB/s | 190 kB     00:00    
(9/18): perl-File-Listing-6.04-13.fc25.noarch.r 204 kB/s |  17 kB     00:00    
(10/18): perl-HTTP-Cookies-6.01-13.fc25.noarch. 375 kB/s |  29 kB     00:00    
(11/18): perl-HTTP-Negotiate-6.01-13.fc25.noarc 250 kB/s |  21 kB     00:00    
(12/18): perl-Test-Simple-1.302062-1.fc25.noarc 1.5 MB/s | 410 kB     00:00    
(13/18): perl-NTLM-1.09-13.fc25.noarch.rpm      160 kB/s |  23 kB     00:00    
(14/18): perl-WWW-RobotRules-6.02-14.fc25.noarc 168 kB/s |  22 kB     00:00    
(15/18): perl-Net-HTTP-6.13-1.fc25.noarch.rpm   315 kB/s |  41 kB     00:00    
(16/18): perl-Time-Piece-1.31-385.fc25.x86_64.r 638 kB/s |  88 kB     00:00    
(17/18):  77 kB/s |  16 kB     00:00    
(18/18): perl-Text-CSV-1.91-4.fc25.noarch.rpm   297 kB/s | 103 kB     00:00    
Total                                           1.3 MB/s | 3.7 MB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Installing  : perl-Glib-1.321-2.fc25.x86_64                              1/18 
  Installing  : perl-Net-HTTP-6.13-1.fc25.noarch                           2/18 
  Installing  : perl-Cairo-1.106-3.fc25.x86_64                             3/18 
  Installing  : perl-Pango-1.227-3.fc25.x86_64                             4/18 
  Installing  : perl-Time-Piece-1.31-385.fc25.x86_64                       5/18 
  Installing  : perl-Text-CSV-1.91-4.fc25.noarch                           6/18 
  Installing  : perl-WWW-RobotRules-6.02-14.fc25.noarch                    7/18 
  Installing  : perl-NTLM-1.09-13.fc25.noarch                              8/18 
  Installing  : perl-HTTP-Negotiate-6.01-13.fc25.noarch                    9/18 
  Installing  : perl-HTTP-Cookies-6.01-13.fc25.noarch                     10/18 
  Installing  : perl-File-Listing-6.04-13.fc25.noarch                     11/18 
  Installing  : perl-libwww-perl-6.15-3.fc25.noarch                       12/18 
  Installing  : perl-LWP-Protocol-https-6.07-1.fc25.noarch                13/18 
  Installing  : perl-Test-Simple-1.302062-1.fc25.noarch                   14/18 
  Installing  : perl-Gtk2-1.2498-3.fc25.x86_64                            15/18 
  Installing  : perl-Locale-gettext-1.07-4.fc25.x86_64                    16/18 
  Installing  : perl-JSON-2.90-7.fc25.noarch                              17/18 
  Installing  : clamtk-5.24-1.fc25.noarch                                 18/18 
  Verifying   : clamtk-5.24-1.fc25.noarch                                  1/18 
  Verifying   : perl-Glib-1.321-2.fc25.x86_64                              2/18 
  Verifying   : perl-Gtk2-1.2498-3.fc25.x86_64                             3/18 
  Verifying   : perl-JSON-2.90-7.fc25.noarch                               4/18 
  Verifying   : perl-Locale-gettext-1.07-4.fc25.x86_64                     5/18 
  Verifying   : perl-libwww-perl-6.15-3.fc25.noarch                        6/18 
  Verifying   : perl-Cairo-1.106-3.fc25.x86_64                             7/18 
  Verifying   : perl-Pango-1.227-3.fc25.x86_64                             8/18 
  Verifying   : perl-Test-Simple-1.302062-1.fc25.noarch                    9/18 
  Verifying   : perl-File-Listing-6.04-13.fc25.noarch                     10/18 
  Verifying   : perl-HTTP-Cookies-6.01-13.fc25.noarch                     11/18 
  Verifying   : perl-HTTP-Negotiate-6.01-13.fc25.noarch                   12/18 
  Verifying   : perl-NTLM-1.09-13.fc25.noarch                             13/18 
  Verifying   : perl-WWW-RobotRules-6.02-14.fc25.noarch                   14/18 
  Verifying   : perl-Net-HTTP-6.13-1.fc25.noarch                          15/18 
  Verifying   : perl-LWP-Protocol-https-6.07-1.fc25.noarch                16/18 
  Verifying   : perl-Text-CSV-1.91-4.fc25.noarch                          17/18 
  Verifying   : perl-Time-Piece-1.31-385.fc25.x86_64                      18/18 

  clamtk.noarch 5.24-1.fc25                                                     
  perl-Cairo.x86_64 1.106-3.fc25                                                
  perl-File-Listing.noarch 6.04-13.fc25                                         
  perl-Glib.x86_64 1.321-2.fc25                                                 
  perl-Gtk2.x86_64 1.2498-3.fc25                                                
  perl-HTTP-Cookies.noarch 6.01-13.fc25                                         
  perl-HTTP-Negotiate.noarch 6.01-13.fc25                                       
  perl-JSON.noarch 2.90-7.fc25                                                  
  perl-LWP-Protocol-https.noarch 6.07-1.fc25                                    
  perl-Locale-gettext.x86_64 1.07-4.fc25                                        
  perl-NTLM.noarch 1.09-13.fc25                                                 
  perl-Net-HTTP.noarch 6.13-1.fc25                                              
  perl-Pango.x86_64 1.227-3.fc25                                                
  perl-Test-Simple.noarch 1.302062-1.fc25                                       
  perl-Text-CSV.noarch 1.91-4.fc25                                              
  perl-Time-Piece.x86_64 1.31-385.fc25                                          
  perl-WWW-RobotRules.noarch 6.02-14.fc25                                       
  perl-libwww-perl.noarch 6.15-3.fc25                                           

By using the mouse with a double-click you can make changes into anti-virus settings.
The first step when opening ClamTK GUI is to select "Update Assistant".
You can choose "I would like to update signatures myself".
You should go back to the home screen of ClamTK and click "Settings"
Also, you can use this GUI to scan, update and analysis your operating system.

Monday, April 17, 2017

The YARA tool for Linux security - part 001.

The YARA tool is a multi-platform program running on Windows, Linux and Mac OS X.
The YARA is designed to help malware researchers identify and classify malware samples.
It’s been called for security researchers and everyone else.
Yara provides an easy and effective way to write custom rules based on strings or byte sequences and allows you to make your own detection tools.
You can create descriptions of malware families based on textual or binary patterns or whatever you want to describe.
This descriptions or rules consists of a set of strings and a boolean expression which determine its logic.
The official website can be found here.
The First you need to install the yara tool under your Linux OS.
I used Fedora 25 distro.
[root@localhost mythcat]# dnf install yara
Last metadata expiration check: 0:49:37 ago on Sun Apr 16 22:23:14 2017.
Dependencies resolved.
 Package      Arch           Version              Repository               Size
 yara         x86_64         3.5.0-7.fc25         updates-testing         191 k

Transaction Summary
Install  1 Package

Total download size: 191 k
Installed size: 861 k
Is this ok [y/N]: y
Downloading Packages:
yara-3.5.0-7.fc25.x86_64.rpm                    171 kB/s | 191 kB     00:01    
Total                                            92 kB/s | 191 kB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Installing  : yara-3.5.0-7.fc25.x86_64                                    1/1 
  Verifying   : yara-3.5.0-7.fc25.x86_64                                    1/1 

  yara.x86_64 3.5.0-7.fc25                                                      

Let test it with the basic command:
[mythcat@localhost ~]$ yara
yara: wrong number of arguments

Try `--help` for more options
[mythcat@localhost ~]$ yara --help
YARA 3.5.0, the pattern matching swiss army knife.

Mandatory arguments to long options are mandatory for short options too.

  -t,  --tag=TAG                   print only rules tagged as TAG
  -i,  --identifier=IDENTIFIER     print only rules named IDENTIFIER
  -n,  --negate                    print only not satisfied rules (negate)
  -D,  --print-module-data         print module data
  -g,  --print-tags                print tags
  -m,  --print-meta                print metadata
  -s,  --print-strings             print matching strings
  -e,  --print-namespace           print rules' namespace
  -p,  --threads=NUMBER            use the specified NUMBER of threads to scan a directory
  -l,  --max-rules=NUMBER          abort scanning after matching a NUMBER of rules
  -d VAR=VALUE                     define external variable
  -x MODULE=FILE                   pass FILE's content as extra data to MODULE
  -a,  --timeout=SECONDS           abort scanning after the given number of SECONDS
  -k,  --stack-size=SLOTS          set maximum stack size (default=16384)
  -r,  --recursive                 recursively search directories
  -f,  --fast-scan                 fast matching mode
  -w,  --no-warnings               disable warnings
  -v,  --version                   show version information
  -h,  --help                      show this help and exit

Send bug reports and suggestions to: .
When you use YARA you can use:
  • modules - like extensions to YARA’s core functionality; 
  • external variables; 
  • including files; 
The YARA use rules and this rules are: global rules, private rules, tags and metadata.
The base of the syntax of a YARA rule set is this:
rule RuleName  
    $test_string1= "Testing"
    $test_string2= {C6 45 ?? ??}
    $test_string1 or $test_string2
The words strings and Conditions are two important keywords: strings and condition. The rule work with strings and this strings are the unique values to search for, while condition specifies your detection criteria. Some example with con:
all of them       /* all strings in the rule */
any of them       /* any string in the rule */
all of ($a*)      /* all strings whose identifier starts by $a */
any of ($a,$b,$c) /* any of $a, $b or $c */
1 of ($*)         /* same that "any of them" */
You can include also the meta keyword, see:
rule RuleName  
      author = "Catalin George Festila - rule 001 "
      description = "tell something to the computer"
   $test_string1= "first step "
The metadata can be referenced using the arg –m option at the command line.
You can add comments to your YARA rules just as if it was a C source file because rules have a syntax that resembles the C language.

Saturday, April 15, 2017

The whiptail tool .

This command let you deal with many display dialog boxes from shell scripts.
The command is named whiptail and you can read and see simple examples with this command here.

Note: --infobox is almost useless in an xterm, because whiptail writes to the other screen xterm makes available but you can use the --msgbox

The tutorial of this day will show you how to put the text from a text file to the screen.
First, you need a text file with a size of your shell screen and this will be used by this command.
For example, I used this text from Wikipedia into my text file named greeting.txt, see content :

The Paschal Greeting, also known as the Easter Acclamation, is an Easter custom among Eastern Orthodox, Oriental Orthodox, and Eastern Catholic Christians. Instead of "hello" or its equivalent, one is to greet another person with "Christ is Risen!" or "The Lord is Risen!", and the response is "Truly, He is Risen," "Indeed, He is Risen," or "He is Risen Indeed" - compare Matthew 27:64, Matthew 28:6 7, Mark 16:6, Luke 24:6, Luke 24:34 In some cultures, such as in Russia and Serbia, it is also customary to exchange a triple kiss of peace on the alternating cheeks after the greeting. Similar responses are also used in the liturgies of other Christian churches, but not so much as general greetings.

To use the whiptail command just use this into your shell:
[mythcat@localhost ~]$ whiptail --textbox  /dev/stdin  19 59  <<<"$(cat greeting.txt)"
The output of this command can be seen into next image:

Linux: tools to scan a Linux server for malware and rootkits.

This tools are: chkrootkit, rkhunter, fuser and ISPProtect. All of this tools can be install under Fedora 25 with dnf tool. First tool is chkrootkit is a classic rootkit scanner. It checks your server for suspicious rootkit processes and checks for a list of known rootkit files.
[root@localhost mythcat]# chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `crontab'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
Checking `echo'... not infected
The Rootkit Hunter named rkhunter is a Unix-based tool that scans for rootkits, backdoors and possible local exploits.
[root@localhost mythcat]# rkhunter --update
[ Rootkit Hunter version 1.4.2 ]

Checking rkhunter data files...
  Checking file mirrors.dat                                  [ No update ]
  Checking file programs_bad.dat                             [ No update ]
  Checking file backdoorports.dat                            [ No update ]
  Checking file suspscan.dat                                 [ No update ]
  Checking file i18n/cn                                      [ No update ]
  Checking file i18n/de                                      [ No update ]
  Checking file i18n/en                                      [ No update ]
  Checking file i18n/tr                                      [ No update ]
  Checking file i18n/tr.utf8                                 [ No update ]
  Checking file i18n/zh                                      [ No update ]
  Checking file i18n/zh.utf8                                 [ No update ]
[root@localhost mythcat]# rkhunter --propupd
[ Rootkit Hunter version 1.4.2 ]
File created: searched for 172 files, found 136
[root@localhost mythcat]# rkhunter -c --enable all --disable none
[ Rootkit Hunter version 1.4.2 ]

Checking system commands...

  Performing 'strings' command checks
    Checking 'strings' command                               [ OK ]

  Performing 'shared libraries' checks
    Checking for preloading variables                        [ None found ]
    Checking for preloaded libraries                         [ None found ]
    Checking LD_LIBRARY_PATH variable                        [ Not found ]

  Performing file properties checks
    Checking for prerequisites                               [ OK ]
    /usr/bin/awk                                             [ OK ]
    /usr/bin/basename                                        [ OK ]
    /usr/bin/bash                                            [ OK ]
    /usr/bin/cat                                             [ OK ]
    /usr/bin/chattr                                          [ OK ]
    /usr/bin/chmod                                           [ OK ]
    /usr/bin/chown                                           [ OK ]
    /usr/bin/cp                                              [ OK ]
Another tool is fuser
[root@localhost mythcat]# fuser -vn tcp 5222
The output of this command let you to see the recall of anything on your machine that should be listening on tcp port 5222.
[root@localhost mythcat]# fuser -vn tcp 19635
This output indicates that there is a process named "foo" running with PID number and listening on port 19635. The last tool is ISPProtect. ISPProtect is a malware scanner for web servers, it scans for malware in website files and CMS systems like Wordpress, Joomla, Drupal