티스토리 뷰
IP 확인 / IP 추적 프로그램
Windows 컴퓨터에서 외부와 연결된 IP를 확인하기 위해서 사용하는 명령어로 netstat -ano | findstr "ESTABLISHED"가 있습니다. 이때 출력되는 remote IP를 각각 whois 홈페이지에서 입력하여 그 IP를 추적할 수 있지만, 관련 IP가 상당히 많이 나오기 때문에 모두 하나씩 확인하려면 반복작업으로 상당한 시간이 소요됩니다.
윈도 "명령 프롬프트"에서 netstat -ano | findstr "ESTABLISHED"을 입력하고, 출력되는 화면을 모두 DRAG 하여 마우스 오른쪽 클릭을 하게 되면, DRAG 된 부분이 "복사"되게 됩니다.
(WSL2에서 Ubuntu, Kali Linux를 실행하고 터미널에 붙여넣기 가능)
이 복사한 리스트를 리눅스에서 cat > ip_src.txt 명령어를 입력하고, 다시 마우스 오른쪽 클릭을 하게 되면 ip_src.txt 파일에 저장되게 됩니다.
하지만, protocol, source IP, status 등 불필요한 열(column)도 리스트에 모두 포함되게 되는데요, Linux에서 문자열을 가공하여 원하는 부분만 추출하면 한 번에 IP를 추적할 수 있습니다.
윈도 10, WSL2에 Ubuntu 또는 Kali Linux로 쉽게 shell 프로그래밍 및 실행이 가능합니다.
개발자가 아닌 일반인이라 해당 코드는 지저분할 수 있습니다. 이점 양해 바랍니다.
#!/bin/bash
IPLIST="$HOME/Documents/ipcheck/ip_src.txt"
IPLIST2=$(awk '{print $3}' $IPLIST | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"| sed -e s/:443//g -e s/:80//g -e s/^:*//g)
for IP_SRC in $(echo $IPLIST2)
do
echo "whois $IP_SRC"
whois $IP_SRC
done
for ip in $(echo $IPLIST2); do whois $ip | echo "$ip $(grep 'OrgName')"; done > whois.txt
IP 추출을 위한 정규식 ( Regular expression for IP grep )
리스트에서 IP를 추출하는 정규식입니다. regular expression for IP grep과 같은 명령어로 구글링하여 조금 수정했습니다.
윈도 명령 프롬프트에서 복사한 리스트를 리눅스에서 cat > ip_src.txt로 만들 계획이기에, 해당 소스코드에 ip_src.txt를 추가했습니다.
하지만, 2번째 column 역시 IP 형식이기 때문에, 추출 시 2번, 3번 column이 추출되게 됩니다.
awk 명령어를 먼저 사용해서 3번째 column만 추출하고 그다음으로 ip grep 정규식을 사용하면 될 것 같습니다.
IP 추출을 위한 AWK 명령어 사용법
protocol, source IP, remote IP, Status 와 같이 4개의 Column에서 3번째 remote IP 부분만 프로그램에서 필요한데요.
awk '{print $3}' filename
위 명령어로 filename에서 3번째 column($3)만 추출하게 됩니다. tcp, 192로 시작하는 local IP, ESTABLISHED가 모두 빠지고 remote IP만 잘 추출이 되었습니다.
awk '{print $3}' filename > ip.txt 파일에 remote IP를 저장시켰습니다.
하지만 추출된 IP뒤에 PORT NUMBER가 포함되어 있습니다. sed 명령어를 추가하여 443, 80번 포트등을 모두 제거하였습니다. 또는 파이프를 사용하여 awk -F: '{print $1}' 명령어를 사용하고 : 로 구분된 Flied $1번만 추출하는 방법도 있겠네요. 사용자에 맞게 수정해서 사용하시면 될 것 같습니다.
IP 추적 Shell script
for ( ) 반복문을 사용하여 ip.txt 파일에 저장된 리스트를 하나씩 읽어들이고, whois 뒤에 각각 넣어서 바로 확인하는 간단한 shell script 입니다.
이렇게 사용하려면 ip_src.txt에서 3번째 열만 추출하여 ip.txt 파일로 저장하고 다시 프로그램을 실행해야 하는 불편함이 있습니다. 따라서 프로그램 앞에 자동으로 ip_src.txt 파일을 읽어서 3번째 열을 추출하고 이 결과에서 다시 port number를 삭제하는 명령을 반영했습니다. [블로그 상단에 추가한 shell script ]
또한 whois $IP_SRC와 같이 각각 명령어가 실행되면, 해당 IP에 대한 자료가 거의 1페이지씩 나오기 때문에 해당 자료에서 OrgName만 grep 하는 명령어도 추가해보았습니다. 이렇게 추가하면 리스트 옆에 바로 해당 OrgName이 표시되기 때문에 한 번에 확인이 가능합니다. [블로그 상단에 추가한 shell script ]
IP 추적 프로그램 시연
윈도 명령 프롬프트에서 netstat -ano | findstr "ESTABLISHED"를 입력하여, 복사할 내용을 그대로 drag 하고 "마우스 오른쪽 클릭"
그다음으로 WSL, Ubuntu 또는 Kali Linux에서 cat > ip_src.txt 명령어를 입력하고, 다시 "마우스 오른쪽 클릭"으로 붙여넣기하여 ip_src.txt 파일에 해당 리스트를 저장시켰습니다.
이제 ./ipcheck3.sh > result.txt와 같이 명령을 하면, whois IP 결과는 result.txt로 따로 저장이 되고, 한눈에 알아볼 수 있는 Remote IP 및 OrgName 의 결과가 whois.txt 파일에 저장이 됩니다. [블로그 상단에 추가한 shell script를 시연했습니다.]
cat whois.txt 명령을 실행해보면, 아래 이미지의 마지막 부분처럼 모든 IP의 관련 정보가 표시됩니다.
'Computer' 카테고리의 다른 글
휴대전화에 연결 된 IP 확인 | IP 추적 및 DB 관리법 (recon-ng) (2) | 2021.08.26 |
---|---|
아마존 해킹 대응 및 예방법 (0) | 2021.07.27 |
해커의 협박 메일 대응 방법 / Hoax (0) | 2021.07.18 |
kex connection refused 10061 error (1) | 2021.07.17 |
수상한 srt file | srt 바이러스? | srt malformed javascript (0) | 2021.07.14 |
WSL2 Kali & Ubuntu 자동 인터넷 연결 설정 | Auto Internet connection (2) | 2021.06.06 |
Markdown 블로그 글쓰기 | Free Markdown Editor (3) | 2021.05.22 |
WSL2 Kali - 아파치 웹 서버 구축 | Apache2 Web-server 구축 (1) | 2021.05.14 |
- IP 추적 프로그램
- FREE OFFICE SOFTWARE
- Set Password for PDF
- 김해맛집
- 간헐적단식
- 무료 오피스 프로그램
- PDF 문서 만들기
- 장유맛집
- certutil
- iA Writer
- netstat 사용법
- Markdown Editor
- 티스토리챌린지
- Kali Linux 활용법
- PDF 가리기
- Affinity Photo 꿀팁
- 1일1식
- 무료 데이터 복구
- KEX Error
- FTP SERVER PORT FORWARDING
- 무료 동기화 프로그램
- 폴더 암호화
- 고추농사
- 전라북도 맛집
- Windows Pro 암호화
- 오블완
- Windows defender application guard
- 다이어트
- pdf 비밀번호 설정
- ftp server
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |