외부 PC : kali linux
공격대상 PC: WSL Ubuntu (window->linux 로 포트포워딩 상태) <- Snort 위치
잠깐 WSL에 대한 설명
Window에서 리눅스를 사용하려면 Virtual Machine과 같은 도구로 개발 환경을 구성하거나, 듀얼 부팅을 설정해야했습니다.
하지만 WSL이 등장하면서 윈도우에서 복잡한 네트워크 설정 없이도 Linux 계열의 개발 환경을 구축할 수 있게 되었습니다.
참고: wsl이랑 virtual box 동시에 운영이 안됩니다.
https://startnewpassion.tistory.com/339
WSL2는 Window 운영 체제를 Linux 게열의 운영체제로 바꾸는 것이 아닙니다.
Window 운영 체제를 사용하면서 Linux 운영 체제를 위에 덮어서 사용하는 것입니다.
Window와 Linux 운영체제가 분리가 되어있다는 말을 의미하고, 두 운영체제에 할당되는 IP4 주소도 달라지게 됩니다.
IP4 주소가 달라지면서 발생하는 문제점은 다음과 같습니다.
1. 우리가 만든 서비스를 배포하기 이전까지 외부 컴퓨터에서 접속할 수 없다.
2. 배포하기 이전 end to end test에 차질이 생길 수 있다.
이외에도 개발하면서 겪는 문제점은 분명 더 많을 것입니다.
이런 문제를 해결하기 위해 WSL을 사용하는 개발자들은 포트포워딩이 필요할 것입니다.
1)wsl 포트포워딩 방법
1.파일만들기
C 드라이브에 ports_wsl.ps1 이름.확장자명으로 파일을 만들어줍니다.
해당 파일에는 다음 코드를 복사하여 작성해줍니다.
$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';
if( $found ){
$remoteport = $matches[0];
} else{
echo "The Script Exited, the ip address of WSL 2
cannot be found";
exit;
}
#[Ports]
#All the ports you want to forward separated by coma
$ports=@(80, 1000,2000,3000,8000,8002);
#[Static ip]
#You can change the addr to your ip config to listen to a specific address
$addr='0.0.0.0';
$ports_a = $ports -join ",";
#Remove Firewall Exception Rules
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' ";
#adding Exception Rules for inbound and outbound Rules
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP";
for( $i = 0; $i -lt $ports.length; $i++ ){
$port = $ports[$i];
iex "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$addr";
iex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$addr connectport=$port connectaddress=$remoteport";
}
Invoke-Expression "netsh interface portproxy show v4tov4";
powershell을 관리자 권한으로 해준다음에 위에 있는 파일을 실행해줍니다.
.\ports_wsl.ps1
2)SNORT 사용하기, Kali linux 사용하기
1. snort 설치를해줍니다.
apt-get install snort
2. local.rules 수정
지금 공격방식이 icmp, tcp 공격입니다.
icmp : ping 형태의 공격
tcp : ssh 접속 공격
3. kali linux 설치 이것도 wsl로 설치를 해줍니다.
4. kali linux에 ssh hping 설치를 해줍니다.
3) 방화벽 허용하기
'고급 보안이 포함된 windows defender 방화벽'에 들어가기
Action stats 그리고 Verdicts
action stats는 Snort가 탐지한 위협 수 중 조사한 수입니다. verdicts는 Snort가 탐지한 위협에 대해 내린 판단입니다.
Snort는 위협의 심각도에 따라 조사 여부를 결정합니다. 따라서, 심각도가 낮은 위협은 alerts나 logged에 표시되지 않습니다.
* alert: 잠재적인 위협이 발견되었지만, 추가 조사가 필요합니다.
* log: 잠재적인 위협이 발견되었고, 조사가 완료되었습니다.
* allow: 잠재적인 위협이 발견되었지만, 위협으로 판단되지 않아 허용되었습니다.
정리
Hping과 ssh를 통해 kali linux에서 wsl에 접속하였습니다. snort에서 감지한 결과가 action stats 34개, verdicts 114개입니다. Snort에서 action stats에서 alerts,logged가 각각 34개이고, verdicts에서 allow가 114개라면, 114개의 잠재적인 위협이 발견되었지만, 그 중 34개의 위협만이 조사가 완료되었고, 80개의 위협은 추가 조사가 필요합니다.
'프로젝트 > 보안 프로젝트' 카테고리의 다른 글
악성코드 분석 black energy 심화 - DLL 검사 2 (0) | 2022.08.03 |
---|---|
악성코드 분석 black energy 심화 - 프로세스 검사 1 (0) | 2022.08.03 |
Digital forensic challenge 301번 분석 (0) | 2022.08.03 |
악성코드 분석 black energy (0) | 2022.08.03 |