恶意代码分析实战 安装INetSim在CentOS 7上
2017-08-30 16:34
961 查看
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
[b]但是这里也会报错[/b]
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
然后就开始第一次的配置
一直回车默认配置就行了
然后他会查找最近的镜像,这个过程有点慢感觉
你也可以手动配置这么几个
Mirrors
最后它会出现这么一个交互界面
我们输入
install IPC::Shareable
这样就算安装完成了
然后我们再启动
INetSim看看
[b]还是报错[/b]
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
[b]还有个包没装[/b]
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
这是这个模块的依赖(dependency)没有好,我们安装提示安装这两个包
install Digest::MD5
[b]这个失败了[/b]
但是我们可以通过YUM的方式来安装
yum install perl-Digest-MD5
这里有个小技巧,聪明的同学应该看出来了,module名和yum仓库的包名对应关系
install Digest::HMAC
这个成功了
然后我们再去修复那个DNS的问题
install Net::DNS
然后现在安装就可以安装上了,再看看还缺了什么依赖
然后我再启动
可以看出这里有个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 <username> # # 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
就像这样的
然后就可以运行了
这个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也是照这个思路来
[b]然后改完之后记得增加perl的这个模块[/b]
yum install openssl-devel openssl-libs perl -MCPAN -e shell install IO::Socket::SSL
如果安装完上面这些这个还不行,不过还是建议你用下面这种方法
试试这个
yum install perl-IO-Socket-SSL
然后可以看见现在没有
not SSL support了,支持SSL了
然后还有就是注意这个(尽量
CentOS 7不要使能这个选项,因为
CentOS 7没有
iptables的
libipq.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就可以很好启动了
下一步就是开放需要的端口
这个因为是我是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/下、
本文完
相关文章推荐
- 恶意代码分析实战 Lab 6-2 习题笔记
- 恶意代码分析实战Lab09补充
- 恶意代码分析实战-第二章
- 恶意代码分析实战Lab0604
- 恶意代码分析实战
- 恶意代码分析实战 Lab 3-4 习题笔记
- 恶意代码分析实战Lab0903
- 恶意代码分析实战(7-01实验学习笔记)
- 恶意代码分析实战Lab0501补充
- 恶意代码分析实战 Lab 3-3 习题笔记
- 做完这几道恶意代码分析实战题,十一回来老板就给涨薪!
- 恶意代码分析实战 Lab 7-1 习题笔记
- 恶意代码分析实战Lab0602
- 恶意代码分析实战Lab06补充
- 恶意代码分析实战 课后题 Lab11-02
- 恶意代码分析实战Lab0901
- 恶意代码分析实战Lab0501
- 恶意代码分析实战 Lab 10-2 习题笔记
- 恶意代码分析实战 Lab 1-4 习题笔记