恶意代码分析实战 安装INetSim在CentOS 7上

CentOS 7安装INetSim


注: 博主对Perl不太熟,所以搜狗了半天(拒绝百度,从我做起)


官方安装步骤

inetsim documentation

不过写的比较笼统,可以参考参考


1.下载安装文件

从这里下载一个源文件

http://www.inetsim.org/downloads.html

然后放入centos里面,解压,然后用root运行setup.sh

发现报错

Group 'inetsim' does not exist! Aborting

缺少了一个组叫inetsim

我们执行命令

groupadd inetsim

然后再执行,就不会报错了

然后现在这是我们的软件的根目录

[root@localhost inetsim-1.2.6]# ls -il
total 68
 4557160 -rw-r--r--.  1 nobody   65534  4353 Aug 29  2016 CHANGES
 4557159 -rwxr-xr-x.  1 nobody   65534  1116 Aug 29  2016 cleanup.sh
12959504 drwxr-xr-x.  2 nobody   65534    26 Aug 29 20:08 conf
 4557161 drwxr-xr-x.  2 nobody   65534   162 Aug 29  2016 contrib
 4557169 -rw-r--r--.  1 nobody   65534 17982 Aug 29  2016 COPYING
  408925 drwxr-xr-x. 10 nobody inetsim   105 Aug 29  2016 data
 4557151 -rw-r--r--.  1 nobody   65534  1236 Aug 29  2016 DISCLAIMER
12993996 drwxr-xr-x.  2 nobody   65534   104 Aug 29  2016 doc
 4557158 -rwxr-xr-x.  1 nobody   65534   552 Aug 29  2016 inetsim #启动inetsim
 8452339 drwxr-xr-x.  3 nobody   65534    39 Aug 29  2016 lib
 4557157 -rw-r--r--.  1 nobody   65534 12172 Aug 29  2016 LIESMICH
 8944999 drwxrwx---.  2 nobody inetsim     6 Aug 29  2016 log
  408987 drwxr-xr-x.  5 nobody   65534    40 Aug 29  2016 man
 4557156 -rw-r--r--.  1 nobody   65534 10652 Aug 29  2016 README
  442180 drwxrwx---.  2 nobody inetsim     6 Aug 29  2016 report
 4557143 -rwxr-xr-x.  1 nobody   65534  1197 Aug 29  2016 setup.sh

但是启动之后我们会发现报错

[root@localhost inetsim-1.2.6]# ./inetsim 
Can't locate IPC/Shareable.pm in @INC (@INC contains: ./lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at lib/INetSim/Config.pm line 18.
BEGIN failed--compilation aborted at lib/INetSim/Config.pm line 18.
Compilation failed in require at lib/INetSim.pm line 20.
BEGIN failed--compilation aborted at lib/INetSim.pm line 20.
Compilation failed in require at ./inetsim line 20.
BEGIN failed--compilation aborted at ./inetsim line 20.

大概意思就是我们缺了一个Shareable.pm文件,然后一查,这是个perl的运行库

那我们就安装这个库吧,用perl的安装方式

先进入交互模式

perl -MCPAN -e shell
但是这里也会报错
Can't locate CPAN.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).
BEGIN failed--compilation aborted.

我们检查一下这个包有没有在系统里面了

rpm -q perl-CPAN

显示

package perl-CPAN is not installed

OK,那我们就装呗

yum install perl-CPAN

大概要装这么多依赖包

Installed:
  perl-CPAN.noarch 0:1.9800-291.el7                                                                                                                                                           

Dependency Installed:
  gdbm-devel.x86_64 0:1.10-8.el7                 glibc-devel.x86_64 0:2.17-157.el7_3.5          glibc-headers.x86_64 0:2.17-157.el7_3.5         kernel-headers.x86_64 0:3.10.0-514.26.2.el7   
  libdb-devel.x86_64 0:5.3.21-19.el7             perl-Data-Dumper.x86_64 0:2.145-3.el7          perl-Digest.noarch 0:1.17-245.el7               perl-Digest-SHA.x86_64 1:5.85-3.el7           
  perl-ExtUtils-Install.noarch 0:1.58-291.el7    perl-ExtUtils-MakeMaker.noarch 0:6.68-3.el7    perl-ExtUtils-Manifest.noarch 0:1.61-244.el7    perl-ExtUtils-ParseXS.noarch 1:3.18-2.el7     
  perl-Test-Harness.noarch 0:3.28-3.el7          perl-devel.x86_64 4:5.16.3-291.el7             perl-local-lib.noarch 0:1.008010-3.el7          pyparsing.noarch 0:1.5.6-9.el7                
  systemtap-sdt-devel.x86_64 0:3.0-7.el7        

Complete!

OK,我们执行安装

perl -MCPAN -e shell

然后就开始第一次的配置

恶意代码分析实战 安装INetSim在CentOS 7上_第1张图片

一直回车默认配置就行了

然后他会查找最近的镜像,这个过程有点慢感觉

恶意代码分析实战 安装INetSim在CentOS 7上_第2张图片

你也可以手动配置这么几个Mirrors

恶意代码分析实战 安装INetSim在CentOS 7上_第3张图片

最后它会出现这么一个交互界面

我们输入

install IPC::Shareable

恶意代码分析实战 安装INetSim在CentOS 7上_第4张图片

这样就算安装完成了

然后我们再启动INetSim看看

还是报错
Base class package "Net::Server" is empty.
    (Perhaps you need to 'use' the module which defines that package first,
    or make that module available in @INC (@INC contains: ./lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5).

安照上面的方法再装一个试试

perl -MCPAN -e shell
install Net::Server
还有个包没装
Can't locate Net/DNS.pm in @INC (@INC contains: ./lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at lib/INetSim/DNS.pm line 19.

一样的

install Net::DNS

something error

这是这个模块的依赖(dependency)没有好,我们安装提示安装这两个包

install Digest::MD5

恶意代码分析实战 安装INetSim在CentOS 7上_第5张图片

这个失败了

但是我们可以通过YUM的方式来安装

恶意代码分析实战 安装INetSim在CentOS 7上_第6张图片

yum install perl-Digest-MD5

这里有个小技巧,聪明的同学应该看出来了,module名和yum仓库的包名对应关系

install Digest::HMAC

这个成功了

然后我们再去修复那个DNS的问题

install Net::DNS

然后现在安装就可以安装上了,再看看还缺了什么依赖

然后我再启动

恶意代码分析实战 安装INetSim在CentOS 7上_第7张图片

可以看出这里有个logfile打不开的问题

在配置文件(如果把安装包直接丢/root/下面了,因为运行时候会用不是root的账号去运行,所以会出现Permission denied)

/home/inetsim/inetsim-1.2.6/conf/inetsim.conf

里面,有这么一行配置文件

#########################################
# service_run_as_user
#
# User to run services
#
# Syntax: service_run_as_user 
#
# Default: nobody
#
#service_run_as_user     inetsim

把下面这个注释去掉,用inetsim这个用户来运行这个软件,之前Default: nobody

这个nobody用户不在组inetsim里面

所以会报错

改完配置之后,我们添加用户inetsim

useradd inetsim -g inetsim

然后回到目录

/home/inetsim/
chown -R inetsim:inetsim inetsim-1.2.6

为了保证运行时所需的任何权限,我们也加上这步骤(虽然这会存在很大的安全问题,但是我们又不挂在公网上面,只是内网虚拟机分析,可以容忍,如果不这样做,启动的时候会一堆的缺少写或者读(r/w)权限问题

chmod 777 -R inetsim-1.2.6

这样

就像这样的

恶意代码分析实战 安装INetSim在CentOS 7上_第8张图片

恶意代码分析实战 安装INetSim在CentOS 7上_第9张图片

然后就可以运行了
这个smtp启动失败不知道是什么原因…(玄学问题吧)

配置

配置inetsim

这里我只是说一下我的配置方式,不一定非要安装我的来配,仅供参考

service_bind_address    127.0.0.1

然后这个刚刚说过了

service_run_as_user     inetsim

然后这里按照你分析的恶意代码需求来配

dns_static      www.foo.com     10.10.10.10
dns_static      ns1.foo.com     10.70.50.30
dns_static      ftp.bar.net     10.10.20.30

也可以用ApateDNS来做这个DNS

不过要注意就是ApateDNS只能在Windows机器上使用

这里不要使用Default的版本号,就怕恶意代码作者会做一些反逆向分析措施

dns_version "9.2.4"

然后这里也是一样的

http_version            "Microsoft-IIS/4.0"

然后这里安装你的需求来设置欺骗路径

http_fakefile           txt     sample.txt      text/plain
http_fakefile           htm     sample.html     text/html
http_fakefile           html    sample.html     text/html
http_fakefile           php     sample.html     text/html
http_fakefile           gif     sample.gif      image/gif
http_fakefile           jpg     sample.jpg      image/jpeg
http_fakefile           jpeg    sample.jpg      image/jpeg
http_fakefile           png     sample.png      image/png
http_fakefile           bmp     sample.bmp      image/x-ms-bmp
http_fakefile           ico     favicon.ico     image/x-icon
http_fakefile           exe     sample_gui.exe  x-msdos-program
http_fakefile           com     sample_gui.exe  x-msdos-program

这里看你分析的恶意代码有没有下载exe文件的需求了,如果有,随便丢一个小程序放在你自己的某个目录下,然后编辑这里来使起生效

#http_static_fakefile   /path/                  sample_gui.exe  x-msdos-program
#http_static_fakefile   /path/to/file.exe       sample_gui.exe  x-msdos-program

然后这个https的pem文件,最偷懒的办法就是复制原来的default_*.pem文件为新的这个文件,如https_key.pem等等,然后取消相应的注释就行了(这些文件在data/cert/下面)

https_ssl_keyfile      https_key.pem

然后我们可以通过下面这个命令生成https_dh1024.pem

openssl gendh -5 -out https_dh1024.pem 1024

然后取消注释

https_ssl_dhfile        https_dh1024.pem

下面的smtp_ssl也是照这个思路来

然后改完之后记得增加perl的这个模块
yum install openssl-devel openssl-libs
perl -MCPAN -e shell
install IO::Socket::SSL

如果安装完上面这些这个还不行,不过还是建议你用下面这种方法
试试这个

yum install perl-IO-Socket-SSL

恶意代码分析实战 安装INetSim在CentOS 7上_第10张图片

然后可以看见现在没有not SSL support了,支持SSL了

然后还有就是注意这个(尽量CentOS 7 不要使能这个选项,因为CentOS 7没有iptableslibipq.h这个头文件,没法支持)

#redirect_enabled        yes

把重定向地址改成自己

redirect_external_address       127.0.0.1

然后记得安装这几个库如果想开重定向的话

perl -MCPAN -e shell
install IPTables::IPv4::IPQueue

为了安装上这些东西,你还需要

yum install gcc iptables-devel

但是这个我没安装成功,建议还是不要重定向了

然后到此位置,你的INetSim已经安装完成(但是我的smtp没法启动是什么鬼)

(2017-8-30)事后查明是配置文件中这里不要用127.0.0.1,smtp就可以很好启动了

配置

恶意代码分析实战 安装INetSim在CentOS 7上_第11张图片

下一步就是开放需要的端口

这个因为是我是centos7,所以就不说了,其他发行版的都有自己的方法

Forking services...
  * dummy_1_tcp - started (PID 2718)
  * ident_113_tcp - started (PID 2704)
  * syslog_514_udp - started (PID 2705)
  * echo_7_tcp - started (PID 2710)
  * discard_9_udp - started (PID 2713)
  * quotd_17_tcp - started (PID 2714)
  * finger_79_tcp - started (PID 2703)
  * discard_9_tcp - started (PID 2712)
  * ntp_123_udp - started (PID 2702)
  * time_37_tcp - started (PID 2706)
  * daytime_13_tcp - started (PID 2708)
  * echo_7_udp - started (PID 2711)
  * chargen_19_tcp - started (PID 2716)
  * chargen_19_udp - started (PID 2717)
  * dummy_1_udp - started (PID 2719)
  * irc_6667_tcp - started (PID 2701)
  * time_37_udp - started (PID 2707)
  * quotd_17_udp - started (PID 2715)
  * tftp_69_udp - started (PID 2700)
  * daytime_13_udp - started (PID 2709)
  * dns_53_tcp_udp - started (PID 2691)
  * smtps_465_tcp - started (PID 2695)
  * ftps_990_tcp - started (PID 2699)
  * ftp_21_tcp - started (PID 2698)
  * pop3_110_tcp - started (PID 2696)
  * smtp_25_tcp - started (PID 2694)
  * https_443_tcp - started (PID 2693)
  * pop3s_995_tcp - started (PID 2697)
  * http_80_tcp - started (PID 2692)

我做好了一个centos7版本的INetSim镜像,为了方便其他的恶意代码分析,在百度云上,下载地址在这里

链接: http://pan.baidu.com/s/1c6NqqU 密码: gj4i

镜像是VirtualBox 导出的ovf1.0版本,不保证VMware能导入成功,但保证VirtualBox能导入成功

系统的默认IP是192.168.0.107(记得在/home/inetsim/inetsim-xx/conf/inetsim.conf里面更改一下ip地址,改成你现在机器DHCP所得的IP

用户名root
密码test

/root/目录下有个一个inetsim启动的软链接(这个后来我发现没法用,因为是在/root/的目录下,然后程序用inetsim这个用户运行的时候会报错,但是导都导了,传都传了,大家就去/home/inetsim/inetsim-1.2.6/下,执行inetsim这个可执行文件就可以启动,和一个打开所有端口的脚本openport.sh(这个可以正常用)

安装文件在/root/下有个原版压缩包,解压后放在了/home/inetsim/下、

本文完

你可能感兴趣的:(安全)