入侵检测
蜜罐
蜜罐是什么
蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机。
cowrie 被动方式
什么是cowrie
Cowrie是一款中度交互的SSH与Telnet蜜罐,它可以获取攻击者用于暴力破解的字典、输入的命令以及上传或下载的恶意文件。
特性:
1. 伪装的文件系统可增加/移除文件;完整的文件系统搭配有Debian 5.0;
2. 可增加文件内容,攻击者就能用cat命令查看如/etc/passwd等文件;系统中进包含最少的文件内容;
3. 会话日志记录在UML兼容格式中,便于重演;
4. Cowrie保存文件,下载用wget/curl,或者为后续检查——上传采用SFTP和scp;
安装运行cowrie
useradd cowrie passwd cowrie yum install -y git python-virtualenv bzip2-devel libffi-devel vim net-tools mysql-devel yum groupinstall "Development Tools" git clone https://github.com/cowrie/cowrie.git
创建虚拟环境
virtualenv -p python2.7 cowrie-env source cowrie-env/bin/activate
#Python虚拟环境执行 pip install six packaging appdirs pip install -r requirements.txt cp cowrie.cfg.dist cowrie.cfg chown -R cowrie /opt/cowrie/
端口环境配置
vim /etc/ssh/sshd_config
... #Port 22为Port 321 vim cowrie.cfg #文件修改
... listen_port = 2222
配置防火墙
firewall-cmd --permanent --add-port=321/tcp firewall-cmd --zone=public --add-masquerade --permanent firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2222 --permanent firewall-cmd --permanent --list-all firewall-cmd --reload systemctl restart sshd
配置Mysql数据库
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm yum localinstall mysql57-community-release-el7-11.noarch.rpm yum install mysql-community-server systemctl start mysqld systemctl enable mysqld systemctl daemon-reload
Python mysql包
. cowrie-env/bin/activate pip install mysql-python
导入/opt/cowrie/docs/sql/mysql.sql
修改配置文件
[output_mysql] enabled = true host = localhost database = cowrie username = cowrie password = 123456 port = 3306
Kali 测试攻击
hydra -l root -P ./password.txt -f ssh://IP
蜜罐 elastichoney
配置go环境
环境变量:
vim ~/.bashrc
... export GOROOT=/usr/local/go export GOPATH=/opt/goblog export PATH=$PATH:$GOPATH:/usr/local/go/bin
source /etc/profile
下载环境
go get github.com/fw42/go-hpfeeds git clone https://github.com/jordan-wright/elastichoney.git
在编译前需要修改配置:
https://ifconfig.co/ip
运行
go get github.com/fw42/go-hpfeeds git clone https://github.com/jordan-wright/elastichoney.git
在编译前需要修改配置:
https://ifconfig.co/ip
下载环境
go build -o elastichoney ./elastichoney -config="config.json" -log="logs/elastichoney.log" -verbose=true
入侵监控 osquery
简介
osquery是一个由FaceBook开源用于对系统进行查询、监控以及分析的一款软件。
支持的操作系统也特别的多:MacOS、CentOS、Ubuntu、Windows等
将操作系统当作是一个关系型数据库,使用SQL语句的方式去查询操作系统中的信息。
1. OSQUERY是运行于操作系统层面的监测工具
2. 官网地址:https://osquery.io/
3. 唯一不足的地方官网没有提供管控平台
Centos7安装osquery
安装yum源
rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
安装
yum install osquery.x86_64 –y
官网: https://osquery.io/downloads/official/3.3.2
配置
cp /usr/share/osquery/osquery.example.conf /etc/osquery/osquery.conf
osqueryi(交互式模式) osqueryd(后台进程模式)
启动
systemctl start osqueryd
执行
osqueryi
https://osquery.io/schema/3.3.2
具体操作
查看系统信息:
select * from system_info;
查看OS版本:
select * from os_version;
查看内核信息版本:
SELECT * FROM kernel_info;
内存信息:
select * from memory_info;
查询用户信息:
select * from users;
检查计划任务:
select * from crontab;
配置文件: osqueryd.conf
Options
osquery daemon的一些配置,日志产生路径、线程数等
Schedule
设置定时任务
Packs
规则
推荐
Windows
MITRE ATT&CK框架:
https://github.com/teoseller/osquery-attck
Linux
主机信息监控规则
https://github.com/grayddq/HIDS
osquery+Kolide Fleet
Kolide Fleet是为安全专家量身打造的最先进的主机监控平台。利用Facebook久经考验的osquery项目。
安装mysql
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm rpm -ivh mysql80-community-release-el7-1.noarch.rpm yum update yum install mysql-community-server.x86_64 mysql-community-client.x86_64 -y
安装redis
wget http://download.redis.io/redis-stable.tar.gz tar zxf redis-stable.tar.gz cd redis-stable make make install cp redis.conf /etc/redis.conf redis-server /etc/redis.conf
安装Fleet
wget https://dl.kolide.co/bin/fleet_latest.zip unzip fleet_latest.zip 'linux/*' -d fleet
拷贝执行命令到bin目录
cp fleet/linux/fleet /usr/bin/fleet cp fleet/linux/fleetctl /usr/bin/fleetctl
连接数据库
/usr/bin/fleet prepare db --mysql_address=127.0.0.1:3306 --mysql_database=kolide --mysql_username=root --mysql_password=password
配置证书
openssl genrsa -out /etc/pki/tls/private/server.key 4096 openssl req -new -key /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.csr openssl x509 -req -days 366 -in /etc/pki/tls/certs/server.csr -signkey /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.cert
创建日志目录
mkdir /var/log/kolide
启动服务
/usr/bin/fleet serve \ --mysql_address=127.0.0.1:3306 \ --mysql_database=kolide \ --mysql_username=root \ --mysql_password=password \ --redis_address=127.0.0.1:6379 \ --server_cert=/etc/pki/tls/certs/server.cert \ --server_key=/etc/pki/tls/private/server.key \ --logging_json \ --osquery_result_log_file=/var/log/kolide/osquery_result \ --osquery_status_log_file=/var/log/kolide/osquery_status
利用osquery推送主机
创建密钥
echo 'OB+ltcnAmEqykZXNthWNRv4qQMh9Rp0b' > /var/osquery/enroll_secret
#配置证书,证书下载位置如图,下载完成后进行改名
mv 10.10.10.5_8080.pem /var/osquery/server.pem
执行osqueryd
/usr/bin/osqueryd \ --enroll_secret_path=/var/osquery/enroll_secret \ --tls_server_certs=/var/osquery/server.pem \ --tls_hostname=10.10.10.5:8080 \ --host_identifier=hostname \ --enroll_tls_endpoint=/api/v1/osquery/enroll \ --config_plugin=tls \ --config_tls_endpoint=/api/v1/osquery/config \ --config_tls_refresh=10 \ --disable_distributed=false \ --distributed_plugin=tls \ --distributed_interval=3 \ --distributed_tls_max_attempts=3 \ --distributed_tls_read_endpoint=/api/v1/osquery/distributed/read \ --distributed_tls_write_endpoint=/api/v1/osquery/distributed/write \ --logger_plugin=tls \ --logger_tls_endpoint=/api/v1/osquery/log \ --logger_tls_period=10
入侵监控 – Tripwire
Tripwire简介
安装配置Tripwire
添加策略
Tripwire是一个免费的开源入侵检测系统(IDS)。
它是用于监视和警告系统上文件更改的安全工具。可以使用它来监控您的系统文件,包括网站文件。
与其他入侵检测系统 (IDS) 相比,Tripwire 确实有其自身的缺点。但是,由于它是开源的,这些缺点很快会被忘记。
Tripwire提供了四种算法
1. CRC32 (常用)
2. MD5 (常用)
3. SHA
4. HAVAL
安装配置Tripwire
yum install epel-release yum -y install tripwire
生成新的tripwire密钥文件
tripwire-setup-keyfiles
安装配置Tripwire
初始化
tripwire –init sh -c "tripwire --check | grep Filename > no-directory.txt” for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do sed -i "s|\($f\) |#\\1|g" /etc/tripwire/twpol.txt done
安装配置Tripwire
重新生成并重新签署tripwire配置
twadmin -m P /etc/tripwire/twpol.txt
重新初始化tripwire
tripwire --init tripwire --check
添加策略
( rulename = "server run", severity= $(SIG_HI) ) { /etc/init.d -> $(SEC_CRIT); }