카테고리 없음

패킷스니핑

law and security 2024. 11. 6. 10:21

 
(기본설정 확인)

window ip 확인
rocky ip 확인

 

kali ip 확인

 
* Rocky (데이터베이스 및 index.php 확인)
 

데이터베이스 확인
index.php 파일


 

더보기
<?php
$servername = "localhost";
$username = "boarduser";
$password = "p@ssw0rd";
$dbname = "board";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// Insert post
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $title = trim($_POST['title']);
    $content = trim($_POST['content']);

    if(!empty($title) && !empty($content)){

    $stmt = $conn->prepare("INSERT INTO Posts (title, content) VALUES (?, ?)");
    $stmt->bind_param("ss", $title, $content);
    $exe = $stmt->execute();

    if ($exe === TRUE) {
      echo "New record created successfully";
    } else {
      echo "Error: " . $stmt->error;
    }

    $stmt->close();
    } else{
            echo "Title and content must not bm empty.";
    }

}


// Display posts
$sql = "SELECT id, title, content, reg_date FROM Posts";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  echo "<h2>Posts</h2>";
  while($row = $result->fetch_assoc()) {
    echo "<div>";
    echo "<h3>" .htmlspecialchars($row["title"],ENT_QUOTES,'UTF-8')."</h3>";
    echo "<p>" .htmlspecialchars($row["content"],ENT_QUOTES,'UTF-8')."</p>";
    echo "<small>Posted on " .htmlspecialchars($row["reg_date"], ENT_QUOTES, 'UTF-8')."</small>";
    echo "</div><hr>";
  }
} else {
  echo "0 results";
}

$conn->close();
?>

<h2>Create Post</h2>
<form method="post" action="">
  Title: <input type="text" name="title" maxlength="20" placeholder="20자까지 입력가능" required><br>
  Content: <textarea name="content" maxlength="30" placeholder="30자까지 입력가능" required></textarea><br>
  <input type="submit">
</form>

 
 

< 패킷스니핑 >
환경구축:
  1. 칼리리눅스 설치 - kali/kali root / 없음
  2. win10 설치
  3. rockey linux 추가 설치
  • http(80), ftp(21), telnet (23)
패킷스니핑 : 패킷 훔쳐보기 , 랜 환경 (
암호화되지 않은 채 패킷이 이동하는 프로그램
실험환경 :
<클러트서의 어댑터 설정 >
어댑터 1: 브릿지 모드 -(인터넷)
어댑터 2: 랜 host-only( 172.16.0.0/24) (가상머신끼리 통신)
rocky linux : 172.16.0.200으로 잡을 예정
<Rocky Linux설정 >
selinux → 비활성화
setenforce 0
vi /etc/selinux/config
—> SELINUX=disable
nmcli con show
공격자 : 칼리
공격대상 ; win10 / Rockt Linux

 
 

가상 ip가 172.16.0.1번

 

kali 네트워크 설정

 
 

window 네트워크 설정

 
 

rocky 네트워크 설정

 
 <Rocky Linux 추가설치>

 selinux 비활성화 및 httpd, vsftp, telnet-server설치

 
 
1) httpd 활성화 확인

 
2) vsftpd 설치 및 활성화 확인 
 

 

 
 
3) Current mode

더보기
[root@www ~]# sudo setenforce 0
[root@www ~]# sestatus

Current mode: enforcing → permissive가 되어야 한다.
 
4) vi /etc/selinux/config 접속한 후  SELINUX=disable로 변경
 

 
5) enp0s8 설정
 

NetworkManager를 사용하여 네트워크 연결의 IPv4 주소를 설정

 
nmcli con modify enp0s8 ipv4.method manual
→ 고정ip로 잡는것
 
6) ftp 확인
 

 

 
7) 포트 21 tcp 추가
 

 
 

tcp 추가 확인

 
 
8) vi /etc/ssh/sshd_config (  ssh로 접근할 때 root로 로그인할 수 있도록 설정 )
 
 

PermitRootLogin yes로 수정 후 저장

 
 
9) telnet 설치
 

 

telnet services 올라온 것 확인

 
10 ) php 설치
 

 
11) mariadb 설치 확인
 

 
 
12) 네임서버 확인 
 

 
 
 

더보기

 

 

 

 

연결확인

 


 
 
< kali리눅스 설정 >


=> eh1설정 전 
 

 

 
- 인터페이스 시작 

더보기
sueo ip link add name eth1 type dummy
sudo ip link set eth1 up
sudo nmcli con add type ethernet ifname eth1 con-name my-conn ip4 172.16.0.2/24 gw4 172.16.0.1
sudo nmcli con mod my-conn ipv4.dns 8.8.8.8
sudo nmcli con up my-conn
sudo nmcli con show my-conn

 

=> erh1 설정 후 : inet 172.16.0.2 생성 확인 

 
-> eth1 수동으로 생성 및 활성화  172.16.0.2이  생긴 것을 확인 

┌──(kali㉿kali)-[~]
└─$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:ad:25:87 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.41/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0
       valid_lft 5048sec preferred_lft 5048sec
    inet6 fe80::1b73:53b:2174:30da/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:96:5f:3c brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.2/24 brd 172.16.0.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::4c7f:330e:a367:ff0d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 
 
< 윈도우 10 네트워크 설정 >

 
 

 
=> ssh 접속 활성화 

 
=> kali 접속 완료
 
 

ping 테스트 ( kali에서 )

 

 
=> rocky ping 테스트 확인  
 

 
-> 설정 -> windows 보안 > 고급 설정 > 새 인바운드 규칙 추가 

 
=> 위와 같이 설정 
 

인바운드 규칙 추가 확인

 
ping명령을 허용해줘야한다. 윈도우는 방화벽이 막혀있다. 

 
윈도우 ping이 되는 것을 확인 
 
 

ping 테스트 ( window에서 )

 
윈도우에서도 (rocky - 127.16.0.200, kali- 172.16.0.2) ping되는 것을 확인
 
=> 네트워크 연결 된 것을 확인 
 
 
 

Window에서 접속 확인 

 

 

 
=> 내 도메인으로 설정된 웹 페이지 보이는 것을 확인 
 
 
 

패킷스니핑

 
 
칼리리눅스의 와이어샤크를 이용하여 랜에 물려 있는 랜카드를 패킷스니핑하기 위하여 eth1 선택 
 

 
 
=> 패킷스니핑이 진행중인 것을 확인
 
 
<필터 : 보고 싶은 것만 보기 >

tcp.port==80 것만 보여달라는 것 
 
 
< >

(데이터가 왔다갔다)
tcp : 세그먼트
이더넷 :프레임
IP: 패킷
 
 
SNMP : 메일을 받을 때
POP3 : 메일을 보낼 때 
 
 

 
 
 
 
<한글패치 설정>
 

 
 
 

vi /etc/default/local

 

환경변수 적용

 
 

더보기
sudo apt install locales
sudo locale-gen ko_KR.UTF-8
sudo dpkg-reconfigure locales
sudo vi /etc/default/locale

export LANG=ko_KR.UTF-8
export LC_ALL=ko_KR.UTF-8
export LANGUAGE=ko_KR.UTF-8>LC_ALL=ko_KR.UTF-8

udo apt install fonts-noto fonts-noto-cjk  
reboot

 

환경변수 영구적으로 설정
한글이 너무 잘보인다.

 
 

 
테트스 패킷스니핑이 올라온 것을 확인 
 
 

 
 
 
(게이트웨이로 스푸핑)
 
sudo arpspoof -i eth1 -t 172.16.0.12 172.16.0.1
 

 

 
 

 
 
 
와이어샤크에서 tcp패킷이 뜨지 않고 계속 arp만 뜬다면 포워딩 설정을 확인해야 한다. 포워딩은 스푸핑 후 다시 게이트웨이에게 전달하는 것을 의미한다

포워딩 활성화

 
 
 
 

 
게이트웨이의 물리주소가 칼리의 물리주소를 가르키게 되면 정상적으로 스푸핑이 설정된 상태