제목 : MHN Honeypot System Construction

0x00 MHN蜜罐介绍MHN (Modern Honey Network) : 오픈 소스 허니 팟, 허니팟 배치 단순화, 동시에 허니 포트 데이터의 수집 및 통계를 용이하게합니다. ThreatStream을 사용하여 데이터는 MongoDB에 저장되며 침입 탐지 시스템의 배포 센서 코골이, Kippo, Conpot 및 Dionaea가 설치됩니다. 수집 된 정보는 웹 인터페이스를 통해 표시 될 수 있습니다. 공식 성명에 따르면, 현재 MHN 서버의 배포를 지원하기 위해 테스트 된 시스템에는 Ubuntu 14.04, Ubuntu 16.04, Centos 6.9가 포함됩니다.
github 주소 (https://github.com/threatstream/mh)
0x01 支持蜜罐类型코골이
수리카타
디오나 아
Conpot
키포
아문
Glastopf
Wordpot
Shaockpot
P0F
0x02 MHN架构
i43orengyku16694.png

0x03 MHN安装与使用1.Ubuntu安装MHN管理端# 운영 체제 : Ubuntu16.04 시스템 업데이트 및 자동화 스크립트 설치
Sudo 적절한 업데이트
Sudo 적절한 업그레이드 -y
sudo apt -get install git -y
CD /OPT
Sudo git 클론 https://github.com/threatstream/mhn.git
CD MHN /
Sudo ./install.sh
# 서버 정보 구성, 이메일 및 비밀번호는 설치 후 웹 배경 비밀번호입니다.
디버그 모드에서 실행 하시겠습니까? Y/N
Superuser 이메일 : [email protected]
Superuser Password: (다시) :
서버베이스 URL [ 'http://155.138.147.248'] :
Honeymap URL [ ':3000'] : http://155.138.147.24833603000
메일 서버 주소 [ 'localhost'] :
메일 서버 포트 [25] :
이메일에 TLS를 사용하십시오. Y/N N
이메일에 SSL을 사용합니까? y/n
메일 서버 사용자 이름 [ ''] :
메일 서버 암호 [ ''] :
메일 기본 발신자 [ ''] :
로그 파일의 경로 [ '/var/log/mhn/mhn.log'] :
Splunk와 통합 하시겠습니까? (Y/N) n
ELK를 설치 하시겠습니까? (Y/N) n
# spunk 및 elk를 구성하면 여기에서 구성하지 않기로 선택했습니다.
4kshvzn2yfv16695.png

2.MHN配置2.1 agent部署蜜罐배포 옵션에서 배포 해야하는 허니 포트 유형을 선택하고 설치를 위해 배포 스크립트를 복사하십시오.
Conpot Honeypot을 배포하는 경우 시스템에서 다음 스크립트 :을 실행하십시오.
wget 'http://155.138.147.248/api/script/? text=truescript_id=15'-o deploy.sh sudo bash deploy.sh http://155.138.147.248 lfdwqan
s3qov3rbg5w16696.png

2.2 集成Splunk与ArcSightSplunkCD/OPT/MHN/SCRIPTS/
sudo ./install_hpfeeds-logger-splunk.sh
sudo ./install_splunk_universalforwarder.sh
꼬리 -f /var/log/mhn/mhn-splunk.log
이것은 이벤트를 /var/log/mhn-splunk.log의 값으로 기록합니다. SplunkUnveralForwarder는이 로그를 모니터링해야합니다
ArcsightCD/OPT/MHN/SCRIPTS/
Sudo ./install_hpfeeds-logger-arcsight.sh
꼬리 -f /var/log/mhn/mhn-arcsight.log
2.3禁止数据上报Mhnserver는 기본적으로 분석 데이터를 Anomali에보고합니다. 이 구성을 비활성화 해야하는 경우 다음 명령을 실행하십시오.
CD MHN/스크립트/
sudo ./disable_collector.sh
3.利用MHN部署蜜罐SSH蜜罐测试# Honeypot 배포 기계 : 155.138.151.176
# Honeypot : Dionaea
wget
'http://155.138.147.248/api/script/? text=truescript_id=4'-o
deploy.sh sudo bash deploy.sh http://155.138.147.248 lfdwqant
# 공격을 깨뜨리기 위해 무차별 인 힘을 시도하십시오
Hydra -l root -p password.txt mssql: //155.138.151.176
4.界面功能展示1. 아래의 인터페이스는 공격자의 소스 IP 주소, 대상 포트, 제휴 프로토콜 및 허니 포트 타입 공격 보고서 정보를 보여줍니다.
0jbdkt0qyv116697.png

2. 다음 그림에는 공격 페이로드 보고서 정보 (센서, 소스 IP 주소, 대상 포트 등)가 나와 있습니다.
fadtlg5e3kk16698.png

3. 설치된 에이전트 센서를 나열하는 다음 그림을 볼 수 있습니다.
11wivntspnx16700.png

4. 다음 그림은 각각 공격자의 상단의 사용자 이름과 비밀번호 사전을 나열합니다.
ghowq4k0wqk16701.png

fdbsuyfbxvb16703.png

g5dkm4zwfo316704.png

5. 실시간 공격 맵 (Honeymap)을 보려면 다음 연결 주소를 열어
amh4wcqfskc16706.png

0x05 系统排错以及安全设置1.查看系统运行状态루트@MHN:/OPT/MHN/SCRIPTS # sudo /etc/init.d/nginx 상태 #View Nginx 상태
* nginx가 실행 중입니다
root@mhn:/opt/mhn/scripts # sudo /etc/init.d/supervisor 상태 #view 관리자 상태
실행 중입니다
root@mhn:/opt/mhn/scripts #sudo supervisorctl status #뷰 모든 허니 포트 시스템 구성 요소 실행 상태
GEOLOC 실행 PID 31443, 가동 시간 03360003:12
Honeymap Running PID 30826, 가동 시간 0336008:54
HPFEEDS-BROKER 실행 PID 10089, 가동 시간 0:36:42
MHN-Celery-Beat Running Running PID 29909, Uptime 0:18:41
PID 29910을 실행하는 MHN-Celery-Worker, Uptime 0:18:41
PID 7872를 실행하는 MHN-Collector, Uptime 0:18:41
MHN-UWSGI 실행 PID 29911, 가동 시간 0:18:41
Mnemosyne Running PID 28173, 가동 시간 0:30:08
root@mhn:/opt/mhn/scripts #sudo supervisorctl 모든 #restart 모든 honeypot system 명령을 다시 시작하십시오
일반적으로 각 서비스의 상태는 다음과 같습니다.
GEOLOC 실행 PID 31443, 가동 시간 03360003:12
Honeymap Running PID 30826, 가동 시간 0336008:54
HPFEEDS-BROKER 실행 PID 10089, 가동 시간 0:36:42
MHN-Celery-Beat Running Running PID 29909, Uptime 0:18:41
PID 29910을 실행하는 MHN-Celery-Worker, Uptime 0:18:41
PID 7872를 실행하는 MHN-Collector, Uptime 0:18:41
MHN-UWSGI 실행 PID 29911, 가동 시간 0:18:41
Mnemosyne Running PID 28173, 가동 시간 0:30:08
2.honeymap 的状态为FATAL解决方法Golang의 이전 버전을 먼저 삭제
Sudo rm -rf/usr/bin/go
sudo apt-get Golang-go를 제거하십시오
sudo apt-get 제거 --auto-remove golang-go
Golang을 설치하십시오. apt-get install golang이 설치되면 Golang 버전이 낮아서 나중에 오류 가보고되므로 컴파일 된 패키지를 직접 다운로드하십시오.
WGET https://storage.googleapis.com/golang/go1.9.9.linux-amd64.tar.gz
압축을 압축 한 다음 다음 구성을 수행하십시오
sudo tar -xzf go1.9.9.linux-amd64.tar.gz -c/usr //local///패키지 이름은 귀하와 동일하게 변경되어야합니다.
환경 변수 가져 오기 :
GOROOT를 내보내기=/usr/local/go
내보내기 goarch=amd64
내보내기 goos=linux
gobin=$ goroot/bin/수출
내보내기 gotools=$ goroot/pkg/tool/
내보내기 경로=$ gobin: $ gotools: $ 경로
종속성 플러그인 넷을 설치하고 모든 허니 포트 시스템 구성 요소를 다시 시작하십시오.
CD/OPT/Honeymap/Server
GOPATH=/OPT/Honeymap/Server 내보내기
mkdir -p $ gopath/src/golang.org/x/
CD $ gopath/src/golang.org/x/
git 클론 https://github.com/golang/net.git net
그물을 설치하십시오
Sudo Supervisorctl은 모두 다시 시작합니다
3.mhn-celery-worker的状态为FATAL解决方法CD/var/log/mhn/
Sudo Chmod 777 Mhn.log
Sudo Supervisorctl Start Mhn-Celery-Worker
작동하지 않는 경우
CD/var/log/mhn/#View Celery-Worker 오류 로그
Tail -f Mhn-Celery-Worker.err
프롬프트 된 특정 오류는 다음과 같습니다
Worker.err Supervisor: chdir to/root/mhn/server: eacces supervisor: 아동 프로세스가 스폰되지 않았습니다)
루트 및 디렉토리 권한을 변경하십시오
CHMOD 777 -R /Root # 변경 권한
4.手动密码重置이메일 기반 비밀번호 재설정이 귀하에게 적합하지 않은 경우 다른 방법입니다.
# CD/OPT/MHN/Server/Server/
#apt 설치 SQLITE3
# sqlite3 mhn.db
SQLITE 버전 3.7.9 2011-11-01 00333333:41
지침을 위해 '.help'를 입력하십시오
a ';'로 종료 된 SQL 문을 입력하십시오.
sqlite select *에서 사용자;
1 | [email protected] | sklfdjhkasdlfhklsadhfklasdhfkldsahklsd | 1 |
sqlite.quit
$ cd/opt/mhn/server/
$ source env/bin/activate
$ CD 서버
$ python manual_password_reset.py
이메일 주소 : your_user@your_site.com을 입력하십시오
새 비밀번호 :을 입력하십시오
새 비밀번호를 입력하십시오 (다시) :
사용자가 발견, 비밀번호 업데이트
5.网络排查$ sudo netstat -luntp # 네트워크 포트 오프닝 상황 확인
활성 인터넷 연결 (서버 전용)
Proto recv-Q Send-Q 로컬 주소 외국 주소 상태 PID/프로그램 이름
TCP 0 0.0.0.0:22 0.0.0.0:* 561/SSHD를 듣습니다
TCP6 0 :33333:21 :33333333:* 3763/dionaea 청취
TCP6 0 :33333:22 :33333333:* 561/SSHD를 듣습니다
TCP6 0 :33333:1433 :33333333:* 3763/dionaea
TCP6 0 :333333336443 :33333333:* 3763/Dionaea를 듣습니다
TCP6 0 :3333:445 :33333333:* 3763/Dionaea를 듣습니다
TCP6 0 0 :33333:5060 :33333333:* 3763/dionaea를 듣습니다
TCP6 0 :3333:5061 :33333333:* 3763/dionaea를 듣습니다
TCP6 0 :3333:135 :33333333:* 3763/dionaea
TCP6 0 :333333333306 :3333333333:* 3763/dionaea 청취
TCP6 0 :3333:42 :33333333:* 3763/dionaea를 듣습니다
TCP6 0 :3333:80 :33333333:* 3763/dionaea를 듣습니다
UDP 0 0.0.0.0:68 0.0.0.0:* 464/dhclient3
UDP 0 0.0.0.0:40077 0.0.0.0:* 3763/Dionaea
UDP6 0 :33333333365060 :33333333:* 3763/dionaea
UDP6 0 :33333:69 :33333333:* 3763/dionaea
$ sudo iptables -l #View 방화벽 규칙 상태
체인 입력 (정책 수락)
대상 PROT OPT 소스 대상
체인 포워드 (정책 수락)
대상 PROT OPT 소스 대상
체인 출력 (정책 수락)
대상 PROT OPT 소스 대상
$ sudo tcpdump -nnnn tcp port 100000 #listen tcp 100000 데이터 통신 정보
TCPDUMP: Verbose 출력 억제, 전체 프로토콜 디코딩에 -v 또는 -vv를 사용하십시오.
ETH0, Link-Type EN10MB (이더넷), 캡처 크기 65535 바이트
16:46:14.009646 IP 1.2.3.4.42873 5.6.6.8.10000: 플래그 [P.], SEQ 11803493333333333333611, ACK 2474834734, WIN 913, 옵션 [NOP, NOP, NOP, NOP, NOP, NOP. 169636000], 길이
 
뒤로
상단